拉拉维尔; “SQLSTATE [HY000] [2002] 连接被拒绝”
Posted
技术标签:
【中文标题】拉拉维尔; “SQLSTATE [HY000] [2002] 连接被拒绝”【英文标题】:Laravel; "SQLSTATE[HY000] [2002] Connection refused" 【发布时间】:2015-04-07 17:53:08 【问题描述】:我在 OSX 主机上设置了 homestead 2.0 并使用 Sequel Pro。
我可以在Sequel Pro中进行迁移并确认数据已迁移,因此看起来数据库连接没有问题。
但是一旦我尝试从 Laravel 4.2 应用程序获取数据,它就无法检索数据并出现以下错误。
PDOException (2002)
SQLSTATE[HY000] [2002] Connection refused
这是我的mysql配置。
'mysql' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => '33060',
'database' => 'homestead',
'username' => 'homestead',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => ''
Sequel pro 设置同上,
Name: 127.0.0.1
Host: 127.0.0.1
Username: homestead
Password: secret
Database:
Port: 33060
我尝试将主机名更改为 'localhost',homestead destroy 和 up,但没有工作。 为什么??任何建议都有帮助。
【问题讨论】:
MySQL 的端口通常是3306
,而不是33060
。不过,您的系统设置可能有所不同。仔细检查一下。
33060
对于 Sequel 是正确的,因为这是宅基地 VM 转发到主机的端口。对于您的应用程序,您需要 3306
,因为它在宅基地 VM 内运行。
将续集更改为“33060”和宅基地端口“3306”,但没有工作。
这能回答你的问题吗? SQLSTATE[HY000] [2002] Connection refused within Laravel homestead
【参考方案1】:
我遇到了完全相同的问题,但我不确定为什么会发生这种情况。 不过变了
'host' => '127.0.0.1',
到
'host' => 'localhost',
为我工作。总是比我们预期的简单!
【讨论】:
这是因为 localhost 可以是 127.0.0.1 或 ::1 127.0.0.1 => 连接被拒绝,本地主机 => 没有文件或目录我认为 127.0.0.1 是“更好”的错误【参考方案2】:对于在其最新版本 (5.3) 上运行 Laravel 的其他开发人员,我只需更改以下几行:
DB_HOST=127.0.0.1
DB_PORT=3306
进入这个:
DB_HOST=localhost
DB_PORT=33060
显然,33060
将转换为 3306
,但现在无法解释为什么 localhost
应该工作。
【讨论】:
【参考方案3】:我解决了将 Laravel 的 .env 文件中主机参数上的地址 127.0.1.1 替换为 localhost 的问题。我正在使用 GNU/Linux Debian 8、Laravel 5.6.3、php 7.1.8、Apache 2.4.27 和 (Mysql) 10.1.26-MariaDB。
【讨论】:
【参考方案4】:'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'homestead',
'username' => 'homestead',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => ''
试试这个,它可能对你有用
【讨论】:
【参考方案5】:由于某种原因,我遇到了同样的问题,上述方法都不起作用。对我来说,我在 .env 中尝试了这个,我将 DB_HOST 更改为 homestead.local。 Homstead 是我网站的名称。这行得通。
DB_HOST=homestead.local
【讨论】:
【参考方案6】:我通过更新 mariadb 解决了这个问题。我检查了 'brew outdated' 已过时的内容,然后使用 'brew upgrade mariadb' 更新了 mariadb,重新加载 vagrant 并修复了问题。希望这对你有用。
【讨论】:
以上是关于拉拉维尔; “SQLSTATE [HY000] [2002] 连接被拒绝”的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE[HY000] [1049] 未知数据库 'laravel'
SQLSTATE[HY000] [2002] 连接被拒绝 |
Zend 错误 SQLSTATE[HY000] [1045]