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

Laravel: SQLSTATE[HY000] [2002] Connection refused

我正在使用安装了新 laravel 5.4 的 Vag运行t。在我 运行 身份验证之后,我有 运行 迁移以迁移 MySQL 表。所有这些过程都成功,但是当我尝试登录或注册以测试系统时出现错误:

SQLSTATE[HY000] [2002] Connection refused.

但是我的数据库运行良好,因为我已经能够迁移表了。可能的解决方案是什么?检查附件图片(我使用的是 Ubuntu 16.04)

尝试将您的 DB_HOST 从 127.0.0.1 更改为本地主机。如果仍然无法正常工作,请尝试使用默认的 mysql 端口到 3306

如果您使用 laravel,可能是您的 PDO PHP 扩展名未设置。 在你的 php.ini 取消注释 extension=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 从主机迁移,您需要在 .env conf 文件中设置 DB_PORT=33060,因为这是一个端口 vagrant/Homestead 正在收听。但是当我改变它时,我的应用程序停止工作。 所以我建议 ssh 到 vagrant 和 运行 php artisan 从 VM 迁移,你不会有任何问题。