搜尋

首頁  >  問答  >  主體

PDOException SQLSTATE 不存在該檔案或目錄

<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粉038161873P粉038161873504 天前654

全部回覆(2)我來回復

  • P粉731977554

    P粉7319775542023-08-11 00:43:41

    這個錯誤的最簡單原因之一是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套接字更可靠。

    回覆
    0
  • P粉148434742

    P粉1484347422023-08-11 00:10:06

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

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

    回覆
    0
  • 取消回覆