Laravel Homestead SQLSTATE [HY000] [2002]服务器移动后连接被拒绝

时间:2014-09-22 14:54:11

标签: php mysql database laravel

我将我正在处理的应用程序移动到新的开发服务器,Mac OSX主机上的Laravel Homestead VagrantBox。在这样做的时候,我运行了php artisan:迁移来更新我的数据库,这一切都顺利完成。

我决定创建一个新用户来继续测试,所以我创建了路径

Route::get('/newuser', function()
{
    User::create([
        'username' => 'someone',
        'email' => 'someone@someone.com',
        'password' => Hash::make('password') 
]);

return 'Done.';
});

然而,当我访问/ newuser时。我收到以下消息。

SQLSTATE[HY000] [2002] Connection refused

现在,我知道我的数据库配置必须正确,因为当我运行php artisan migrate并且我的数据库成功迁移时,我没有收到任何错误。但是,为了安全起见,我检查了我的数据库配置。

        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost:33060',
            'database'  => 'site',
            'username'  => 'root',
            'password'  => 'apassword',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

我认为我定义端口的方式可能存在问题,所以我添加了参数:

'port' => '33060'

执行此操作后,错误消息从“拒绝连接”更改为“无此类文件或目录”

我很茫然。有没有人有任何指示?

2 个答案:

答案 0 :(得分:2)

  

现在,我知道我的数据库配置必须正确,因为我在运行php artisan migrate时没有收到任何错误

当你遇到一些你认为是问题的假设时,它甚至比金钱赌注更好。您的Laravel应用程序可能在命令行运行期间读取不同的凭据,或迁移无关,或者由于某些奇怪的PHP原因导致迁移运行期间的错误被抑制。我会在错误出现的情况下检查Laravel使用的凭据。将以下代码添加到newuser路线,以查看Laravel的阅读内容。

$default = Config::get('database.default');
var_dump($default);

$config = Config::get('database.connections.'.$default);
var_dump($config);

答案 1 :(得分:0)

我有同样的问题,我看到我的数据库服务器没有响应我重新启动它运行...有时它会导致配置错误。

我发布了这个答案,如果有人会遇到同样的问题并且mysql没有响应:)

相关问题