簡體   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