2016-12-25 40 views
2

我遇到了Laravel,Homestead和MySQL的特殊錯誤。這是涉及到數據庫我.ENV文件的一部分:奇怪的行爲Laravel家園數據庫連接

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=33060 
DB_DATABASE=mydatabasename 
DB_USERNAME=homestead 
DB_PASSWORD=secret 

如果我的端口設置爲3306,我可以訪問從我的申請表,但我不能執行,如PHP工匠遷移從終端命令。如果我將端口設置爲33060,我可以從終端執行命令,但無法從我的應用程序訪問表。

回答

0

您的應用程序運行在Homestead.yaml提供的IP上,因此當localhost相對於您的應用程序端口3306起作用時。當運行artisan而不是SSH進入你的vagrant vm時,你正在運行相對於你的機器本地主機的命令,而不是vm,所以你試圖在沒有數據庫的機器上運行遷移。

端口33060適用於本地計算機的原因是,默認情況下,Homestead將此端口轉發給您的流浪虛擬機端口3306.但由於您的.env現在指定端口33060,流浪虛擬機現在無法訪問端口3306。

DB_HOST設置爲127.0.0.1,使用端口3306和SSH通過vagrant ssh命令進入您的vagrant虛擬機,以運行遷移命令。

或者你也可以有多個.env文件,爲您的各種環境

+0

謝謝你的答案,並很好的解釋。一旦我進入我的流浪者ssh我應該如何運行php工匠遷移? –

+0

@DiegoVidal導航到artisan所在的目錄並按照正常方式運行命令 –