我相信我已經成功地將我的(非常基本的)網站部署到fortrabbit,但是一旦我連接到SSH 來運行一些命令(例如php artisan migrate 或php artisan db :seed),我就會收到一條錯誤訊息:
php artisan migrate
php artisan db :seed
[PDOException] SQLSTATE[HY000] [2002] No such file or directory
在某些時候,遷移一定是有效的,因為我的表就在那裡 - 但這並不能解釋為什麼它現在對我不起作用。
導致此錯誤的最簡單原因之一是 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 套接字可靠得多。
錯誤訊息表示嘗試透過套接字進行 MySQL 連線(不支援)。
在 Laravel(工匠)的上下文中,您可能想要使用不同/正確的環境。例如:php artisan migrate --env=product(或任何環境)。請參閱此處。
php artisan migrate --env=product
導致此錯誤的最簡單原因之一是 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 套接字可靠得多。
錯誤訊息表示嘗試透過套接字進行 MySQL 連線(不支援)。
在 Laravel(工匠)的上下文中,您可能想要使用不同/正確的環境。例如:
php artisan migrate --env=product
(或任何環境)。請參閱此處。