![](/img/trans.png)
[英]SQLSTATE[HY000] [2002] Connection refused within Laravel homestead
[英]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.