【发布时间】:2014-09-22 14:54:10
【问题描述】:
我将一个正在开发的应用程序移到了一个新的开发服务器中,即 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 migrate 并且我的数据库成功迁移时,我没有收到任何错误。但是,为了安全起见,我检查了我的数据库配置。
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost:33060',
'database' => 'site',
'username' => 'root',
'password' => 'apassword',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
我想可能是我定义端口的方式有问题,所以我添加了参数:
'port' => '33060'
执行此操作后,错误消息从“连接被拒绝”更改为“没有这样的文件或目录”
我很茫然。有没有人指点一下?
【问题讨论】:
-
您确定在新服务器上使用了正确的环境吗?
-
那是正确的端口吗?默认mysql端口是3306
-
默认数据库连接是'default' => 'mysql',所以我相信它是正确的环境。
-
是的,这是正确的端口。 Homestead vagrant box 使用端口 33060 而不是 3306。如果我使用 3306,它将使用 mysql 的本地实例,而不是托管在 vagrant box 上的实例。
-
但是您可以在
config/local和config/global中使用不同的值,并且您的新服务器从其他目录加载数据而不是您想象的
标签: php mysql database laravel