Laravel; " SQLSTATE [HY000] [2002]拒绝连接"

时间:2015-02-07 17:36:54

标签: mysql database laravel homestead

我在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'    => ''

续集专业设置与上述相同,

Name: 127.0.0.1    
Host: 127.0.0.1
Username: homestead
Password: secret
Database:     
Port: 33060

我尝试将主机名更改为' localhost',homestead destroy and up,但是没有工作。 为什么??任何建议都有帮助。

6 个答案:

答案 0 :(得分:12)

我有完全相同的问题,我不确定为什么会这样。 无论如何改变

'host'      => '127.0.0.1',

'host'      => 'localhost',

为我工作。总是比我们期望的更简单!

答案 1 :(得分:1)

对于那些在Laravel上运行最新版本(5.3)的其他开发人员,我只是更改这些内容:

DB_HOST=127.0.0.1
DB_PORT=3306

进入这个:

DB_HOST=localhost
DB_PORT=33060

显然,33060将转换为3306,但现在无法解释为什么localhost应该有效。

答案 2 :(得分:1)

我解决了在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。

答案 3 :(得分:0)

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'homestead',
            'username'  => 'homestead',
            'password'  => 'secret',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => ''

试试这个可能对你有用

答案 4 :(得分:0)

由于某些原因,我遇到了同样的问题。对我来说,我在.env中尝试了这个。我将DB_HOST更改为homestead.local。霍姆斯特德是我的网站的名称。这很有用。

DB_HOST=homestead.local

答案 5 :(得分:0)

我通过更新mariadb解决了这个问题。我检查了什么是“ brew陈旧的”过时的,然后用“ brew upgrade mariadb”的重新加载流浪者更新了mariadb,并解决了问题。希望这对您有用。