在Laravel 4中,php artisan migrate错误PDOException

时间:2014-03-27 23:27:06

标签: php mysql laravel

执行此操作时遇到问题:

$ php artisan migrate

我收到错误

[PDOException]                             
SQLSTATE[HY000] [2002] Connection refused 

我正在使用MAMP,它运行正常。

我试图将localhost设置为127.0.0.1并且我添加了'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'但没有任何帮助。

[编辑] 我也添加了端口,我检查了用户,密码正确,服务器运行正常..任何建议??

由于

4 个答案:

答案 0 :(得分:6)

不确定但请确保您的mysql server正在运行并且正在按预期在正确的端口上运行,因为Laravel的默认端口值为3306(它是{的默认端口{1}}服务器)并且很可能mysql正在另一个端口上运行。这是一个discussion并且还检查this answer,它几​​乎相似。

另请按照this thread讨论并解决了您在问题中提到的相同错误:

mysql

答案 1 :(得分:5)

我知道这是一个老问题,但是当我遇到同样的问题时,它出现在谷歌的第一个结果中,所以我想在这里添加我的解决方案,以防它帮助其他人。

在MAMP中单击MySQL时,有一个设置为“允许网络访问MySQL”,需要启用Laravel来访问数据库(默认情况下我没有启用它)。这允许您的应用程序在不使用Unix套接字的情况下连接到MySQL。

答案 2 :(得分:4)

在laravel中更改.env文件: 添加MAMP mysql端口

'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'port'      => '8889',
        'strict'    => false,
    ],

杰夫

答案 3 :(得分:0)

是的,确实存在这个问题,MAMP需要添加到config / database' port' => ' 8889' (假设你正在使用这个端口,而不是80,这可能会导致与Skype等其他应用程序发生冲突!)