[英]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.