2016-12-27 41 views
0

我卡住瞭如何連接到遠程數據庫。Laravel家園連接到遠程數據庫SSH

我已經嘗試運行

ssh -fNg -L 3307:127.0.0.1:3306 [email protected] 

和我.ENV

DB_CONNECTION=mysql 
DB_HOST=128.xxx.xxx.xxx 
DB_PORT=3307 
DB_DATABASE=projectdb 
DB_USERNAME=forge 
DB_PASSWORD=password; 

我可以使用HeidiSql連接遠程數據庫。但是當我嘗試使用laravel項目進行連接時,它總是返回我

SQLSTATE[HY000] [2002] Connection timed out 

任何其他解決方案?

回答

2

在這種情況下,你的.ENV文件應該有設置DB_HOST=127.0.0.1因爲你是隧道(本地)流量從宅基服務器上的3307端口流量到遠程服務器上的3306端口,具體也127.0.0.1。

另一種方式編寫更明確地將是:

ssh -fNg -L 127.0.0.1:3307:127.0.0.1:3306 [email protected] 

(不過,你可以保持您當前的ssh -fNg -L 3307:127.0.0.1:3306 [email protected]命令,我只是顯示你如何寫的另一種方式,希望能夠使點更清晰)。

所以,從Homestead來看,如果你發送流量到127.0.0.1:3307,它將會被隧道傳送到遠程服務器,然後連接到它內部的127.0.0.1:3306

+1

工作!謝謝!。 – ssuhat