Php Laravel:SQLSTATE[HY000][2002]连接被拒绝

Php Laravel:SQLSTATE[HY000][2002]连接被拒绝,php,mysql,laravel,laravel-5.4,Php,Mysql,Laravel,Laravel 5.4,我使用的是安装了新鲜laravel 5.4的Vagrant。在运行auth之后,我已经运行了migrate来迁移MySQL表。所有这些过程都成功,但当我尝试登录或注册以测试系统时,我遇到错误: SQLSTATE[HY000][2002]连接被拒绝 但是我的数据库工作得很好,因为我已经能够迁移表了。可能的解决方案是什么?检查附加图像(我使用的是Ubuntu 16.04) 尝试将DB_主机从127.0.0.1更改为本地主机。如果仍然无法工作,请尝试使用默认的mysql端口3306,如果使用larav

我使用的是安装了新鲜laravel 5.4的Vagrant。在运行auth之后,我已经运行了migrate来迁移MySQL表。所有这些过程都成功,但当我尝试登录或注册以测试系统时,我遇到错误:

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

但是我的数据库工作得很好,因为我已经能够迁移表了。可能的解决方案是什么?检查附加图像(我使用的是Ubuntu 16.04)


尝试将DB_主机从127.0.0.1更改为本地主机。如果仍然无法工作,请尝试使用默认的mysql端口3306,如果使用laravel,则可能未设置PDO PHP扩展。 在php.ini取消注释扩展名中=php_pdo_mysql.dll

如果您无法访问php.ini,请执行以下操作: 将其添加到mysql部分的config/database.php中

'options' => [PDO::ATTR_EMULATE_PREPARES => true],
您的代码应该如下所示:

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'options' => [PDO::ATTR_EMULATE_PREPARES => true],
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

如果您试图从主机运行php artisan migrate,则需要在.env conf文件DB_PORT=33060中进行设置,因为这是vagrant/Homestead正在侦听的端口。但是,当我更改该设置时,我的应用程序将停止工作。
因此,我建议ssh使用vagrant并从VM运行php artisan migrate,这样您就不会有任何问题。

您是否也检查了表是否确实是在phpmyadmin中创建的?(如果您正在运行)mysql服务器和代码在同一台服务器上吗?是的,我使用的是phpstrom(内置数据库管理器),我已经用它配置了相同的数据库。因此,我已检查所有表是否已成功创建请从此处共享您的.env文件codeCheck屏幕截图-您能否验证MySQL是否正在侦听端口33060?因为默认端口是3306。Laravel Homestead默认使用前者,因此问题可能与此有关。或者你正在使用Homestead?从127.0.0.1更改为localhost对我很有用!感谢从127.0.0.1切换到localhost对我很有用。但是这里的
127.0.0.1
localhost
之间有什么区别吗?这里有一个很好的答案@GhulamAkbarI am使用Docker,使用:DB_HOST=mysql为我工作。