我是Laravel开发的新手。 我已经在Mac Mojave 10.14.6上将Xampp更新为7.3.11。 在Laravel项目中,当我按下php artisan migration命令时,出现以下错误。
SQLSTATE [HY000] [2002]连接被拒绝(SQL:从*中选择* information_schema.tables其中table_schema = laravel和table_name = migrations and table_type ='BASE TABLE')
启动Xampp服务时,我的管理面板在http://127.0.0.1:8080/phpmyadmin上运行。
我在Laravel中工作的项目也未与数据库连接,并说连接被拒绝。
我尝试通过更改.env文件中的DB_Port
和DB_Host
来进行尝试。
我尝试清除缓存。
任何帮助将不胜感激。
我的.env文件
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
答案 0 :(得分:3)
打开localhost/phpmyadmin
并找到一个名为User accounts
的标签。
找到root
用户并在您的.env
中设置其密码,如果它不存在,请不要忘记创建名为laravel
的数据库
然后您可以清除配置缓存
php artisan config:clear
然后迁移
php artisan migrate
希望这会有所帮助
答案 1 :(得分:3)
我也通过在docker-compose中运行Laravel来开发一个新项目来开发此错误。
我的解决方案是将prebuild .env文件与我用于构建数据库容器的实际凭据进行比较。
特别是我使用的是DB_HOST=127.0.0.1
而不是我的docker-compose设置的正确服务名称:DB_HOST=mysql
答案 2 :(得分:1)
我有同样的问题。只需重启本地主机服务器即Xampp
即可解决此问题答案 3 :(得分:1)
我遇到了同样的问题,当我执行以下操作时,问题就解决了。
php artisan key:generate
php artisan cache:clear
php artisan route:clear
php artisan config:clear
php artisan view:clear
答案 4 :(得分:1)
尝试做
php artisan config:cache
然后在.env文件中指定数据库和端口
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= YOUR_DATABASE_NAME
DB_USERNAME=root
DB_PASSWORD=
然后运行您的mysql服务器并运行
php artisan迁移
注意:请确保您的Xammp服务器运行良好,并且已经启动了mysql(使用apache服务器或您使用的任何服务器),并且还确保在运行php artisan migration之前已经创建了数据库,希望它适用于你
答案 5 :(得分:1)
我遇到了这个问题,我将MAMP用于MYSQL服务器。
通过将端口更改为我在MAMP指令中找到的正确端口8889
,可以解决此配置问题。
因此,我的.env
文件中的正确配置是:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=dbname
DB_USERNAME=root
DB_PASSWORD=rootpassword
答案 6 :(得分:1)
我遵循并解决的简单步骤
打开.env文件
将DB_HOST = 127.0.0.1更改为localhost
完成
答案 7 :(得分:1)
在大多数情况下,这是端口配置问题。您需要检查服务器在哪个端口上运行。然后,您必须编辑项目的 .env 文件。例如,如果您使用的是Mamp,则端口应更改为8889,而不是laravel的默认3606。 laravel 8也是如此。
答案 8 :(得分:0)
尝试在.env中使用此conf(我正在使用Laravel v7.0),它对我有用:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
答案 9 :(得分:0)
该死,我觉得很愚蠢。 这是我挠头几个小时后对我的帮助。 检查您的MySQL正在运行的端口,这就是您在.env文件中使用的端口。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=laravel
DB_USERNAME=yourusername
DB_PASSWORD=yourpassword
请确保在创建用户时授予该用户所有特权。如果您仍然感到困惑,请问我,请您抽出时间来帮助您。祝大家编码愉快!
答案 10 :(得分:0)
我正在使用 docker compose 文件。你需要做的就是暴露mysql的端口
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: example
MYSQL_USER: example
MYSQL_PASSWORD: example
ports:
- 3306:3306
adminer:
image: adminer
restart: always
ports:
- 8080:8080
答案 11 :(得分:0)
就我而言,实际上就是这样。
DB_HOST=127.0.0.1
DB_PORT=33060
以前
DB_HOST=127.0.0.1
DB_PORT=3306
许多解决方案都建议将 DB_HOST
更改为“localhost”。就我而言,它只是 0
中的一个小DB_PORT
。