首頁  >  問答  >  主體

標題重寫為:遇到PDOException SQLSTATE錯誤,找不到檔案或目錄

我相信我已經成功地將我的(非常基本的)網站部署到fortrabbit,但是一旦我連接到SSH 來運行一些命令(例如php artisan migratephp artisan db :seed),我就會收到一條錯誤訊息:

[PDOException]
SQLSTATE[HY000] [2002] No such file or directory

在某些時候,遷移一定是有效的,因為我的表就在那裡 - 但這並不能解釋為什麼它現在對我不起作用。

P粉183077097P粉183077097348 天前577

全部回覆(2)我來回復

  • P粉788765679

    P粉7887656792023-10-11 12:04:03

    導致此錯誤的最簡單原因之一是 MySQL 伺服器未執行。所以先確認一下。如果它已啟動,請繼續執行其他建議:

    我遇到了完全相同的問題。上述解決方案都不適合我。我透過將 /app/config/database.php 檔案中的“主機”從“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 套接字可靠得多。

    回覆
    0
  • P粉356361722

    P粉3563617222023-10-11 10:29:28

    錯誤訊息表示嘗試透過套接字進行 MySQL 連線(不支援)。

    在 Laravel(工匠)的上下文中,您可能想要使用不同/正確的環境。例如:php artisan migrate --env=product(或任何環境)。請參閱此處

    回覆
    0
  • 取消回覆