Laravel:SQLSTATE [HY000] [2002] Connection拒绝

时间:2017-02-22 11:53:09

标签: php mysql laravel laravel-5.4

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

  

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

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

Connection refused.

3 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分:0)

如果你使用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,
    ],

答案 2 :(得分:0)

如果你想从主机上运行php artisan migrate,你需要设置.env conf文件DB_PORT = 33060,因为这是一个端口vagrant / Homestead正在监听。但是,当我改变我的应用程序停止工作。 所以我建议ssh到vagrant并运行从虚拟机迁移的php工匠,你将没有问题。