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

Posted

技术标签:

【中文标题】Laravel:SQLSTATE [HY000] [2002] 连接被拒绝【英文标题】:Laravel: SQLSTATE[HY000] [2002] Connection refused 【发布时间】:2017-07-12 10:51:12 【问题描述】:

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

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

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

【问题讨论】:

您是否还检查了表是否真的在 phpmyadmin 中创建? (如果您正在运行它)并且mysql服务器与代码在同一台服务器上吗? 是的,我正在使用 phpstrom(内置数据库管理器)并且我已经用它配置了相同的数据库。所以我检查了所有表都已成功创建 请分享您的 .env 文件代码 从这里查看截图-expirebox.com/download/741543100157daa4d14c2b49bcb8ccdf.html 你能验证 MySQL 是否在监听 33060 端口吗?由于默认端口是 3306。Laravel Homestead 默认使用前者,因此问题可能与此有关。还是您在使用 Homestead? 【参考方案1】:

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

【讨论】:

【参考方案2】:

如果你使用 laravel,可能你的 PDO PHP Extension 没有设置。 在你的 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,
    ],

【讨论】:

【参考方案3】:

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

【讨论】:

从 127.0.0.1 更改为 localhost 对我有用!谢谢 从 127.0.0.1 更改为 localhost 对我有用。但是127.0.0.1localhost在这里有什么区别吗? 这里有一个很好的答案***.com/a/7382629/4668162@GhulamAkbar 我正在使用 Docker,并且使用:DB_HOST=mysql 为我工作。

以上是关于Laravel:SQLSTATE [HY000] [2002] 连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

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

Laravel 6.0 迁移 - SQLSTATE[HY000] [2002] 没有这样的文件或目录

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

SQLSTATE[HY000]:一般错误:在 Laravel 中迁移期间出现 1005

PHP + MYSQL + Laravel - “SQLSTATE [HY000] [2002] 连接被拒绝” [重复]

SQLSTATE [HY000] Laravel 8 中的外键约束格式错误