2011-02-07 306 views
2

我有一個遠程數據庫,我想從本地運行的PHP連接到遠程數據庫。該數據庫不允許遠程連接,所以通常我SSH進入並從命令行使用它,但這不是一個真正的長期解決方案。用PHP使用SSH連接到遠程MySQL數據庫

我有SSH訪問,我有MySQL的訪問一次我SSH方式,但我不知道如何讓PHP到工作流。如果我能在MAMP內進行這項工作,那也會很棒。

+0

我花了幾個小時試圖弄清楚這一點,並終於做到了:http://stackoverflow.com/questions/464317/connect-to-a- mysql-server-over-ssh-in-php#comment65229024_16138417 – Ryan 2016-08-13 19:58:47

回答

0

你可以建立一個SSH隧道,然後點你的PHP代碼連接到通過隧道轉發本地端口。在Windows下,你可以使用膩子;對於Mac,會有類似的解決方案。

0

如果這是爲了開發,alex建議的解決方案是要走的路;建立一個ssh-tunnel。

隧道將您127.0.0.1:3306-requests重定向到遠程計算機。遠程機器也會相信這些請求將來自127.0.0.1(本地)。

但是,您可能如果你的服務器遇到問題(共享主機?請註明)不允許從127.0.0.1的MySQL的連接(相當普遍只有本地主機被允許)。這些差異很小,它會阻止你的隧道到達遠程mysqld。

不僅僅是谷歌隧道,設置它,並使用127.0.0.1從PHP連接字符串。

問候,

//牛逼

1

開發或測試,你可以先用ssh命令建立隧道,然後訪問遠程數據庫作爲本地一個。的步驟是:

1)設置隧道ssh命令。命令格式:ssh -L [local port]:127.0.0.1:[remote mysql port,默認爲3306] [user] @ [remote mysql server ip]。樣品: SSH -L 3307:127.0.0.1:3306 [email protected]

2)保持命令窗口活着

3)可以通過MySQL的字符串訪問遠程數據庫:mysqli的:// [用戶]:[密碼] // @ 127.0.0.1:3307/[數據庫名]

相關問題