PDOException SQLSTATE 不存在該檔案或目錄
P粉038161873
P粉038161873 2023-08-10 17:44:11
0
2
620
<p>我相信我已經成功將我的(非常基本的)網站部署到fortrabbit,但是一旦我連接到SSH運行一些命令(如<code>php artisan migrate</code>或<code>php artisan db:seed</code>),我會收到一個錯誤訊息:</p> <pre class="brush:php;toolbar:false;">[PDOException] SQLSTATE[HY000] [2002] 沒有這個檔案或目錄</pre> <p>在某個時候遷移肯定是成功的,因為我的表是存在的 - 但這並不能解釋為什麼現在對我不起作用。 </p>
P粉038161873
P粉038161873

全部回覆(2)
P粉731977554

這個錯誤的最簡單原因之一是MySQL伺服器沒有運作。所以首先要進行驗證。如果它正在運行,請繼續其他建議:

我遇到了完全相同的問題。以上解決方案都對我無效。我透過將/app/config/database.php檔案中的"host"從"localhost"更改為"127.0.0.1"來解決了這個問題。

不確定為什麼"localhost"預設情況下不起作用,但我在一個類似的問題中找到了這個答案,它在一個symfony2的帖子中解決了。 https://stackoverflow.com/a/9251924

更新: 有些人問為什麼這個修復方法有效,所以我對這個問題做了一些研究。根據這個帖子的解釋,它們使用了不同的連接類型。 https://stackoverflow.com/a/9715164

這裡出現的問題是"localhost"使用了UNIX套接字,無法在標準目錄中找到資料庫。然而,"127.0.0.1"使用TCP(傳輸控制協定),這意味著它透過電腦上的"本地網路"運行,比UNIX套接字更可靠。

P粉148434742

錯誤訊息表示嘗試透過套接字建立MySQL連線(這是不支援的)。

在Laravel(artisan)的上下文中,您可能想要使用不同的/正確的環境。例如:php artisan migrate --env=production(或任何其他環境)。請參見這裡

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!