我将我正在处理的应用程序移动到新的开发服务器,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'
执行此操作后,错误消息从“拒绝连接”更改为“无此类文件或目录”
我很茫然。有没有人有任何指示?
答案 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没有响应:)