Laravel 6.4.1 SQLSTATE [HY000] [2002]连接被拒绝

时间:2019-11-01 11:47:30

标签: php laravel macos xampp

我是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_PortDB_Host来进行尝试。 我尝试清除缓存。

任何帮助将不胜感激。

我的.env文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

12 个答案:

答案 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