繁体   English   中英

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

[英]Laravel Homestead SQLSTATE[HY000] [2002] Connection refused after server move

我将正在处理的应用程序移至新的开发服务器,即Mac OSX主机上的Laravel Homestead VagrantBox。 这样做之后,我运行了php artisan:migrate来更新我的数据库,并且一切顺利。

我决定创建一个新用户以继续测试,因此我创建了路由

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 migration并成功迁移数据库时没有收到任何错误。 但是,为了安全起见,我检查了数据库配置。

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

我发现也许定义端口的方式存在问题,所以我添加了参数:

'port' => '33060'

执行此操作后,错误消息从“连接被拒绝”更改为“没有这样的文件或目录”

我很茫然。 有人有指针吗?

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

当您坚持认为是问题的一种假设时,这甚至比赌钱要好。 您的Laravel应用程序可能在命令行运行期间读取了不同的凭据,或者迁移无所事事,或者由于某些怪异的PHP原因而导致错误在迁移运行期间被抑制。 我会在出现错误的情况下检查Laravel使用的凭据。 将以下代码添加到您的newuser路由中,以查看Laravel的读物。

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

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

我遇到了同样的问题,我看到我的数据库服务器无响应,我重新启动后就可以工作了……有时会导致错误的配置。

如果有人会遇到相同的问题并且mysql无法响应,我会发布此答案:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM