我想通過SSH建立一個ssh隧道到我的mysql服務器。通過SSH在PHP連接到MySQL服務器
理想情況下,我會返回一個mysqli數據庫指針,就像我直接連接。
我在沒有SSH2庫的共享主機上,但我可能能夠使用PECL在本地安裝它們。
如果有一種方法使用原生命令,那就太好了。
我在想這樣的事情,但沒有這些庫,它將無法正常工作。
$connection = ssh2_connect('SERVER IP', 22);
ssh2_auth_password($connection, 'username', 'password');
$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307);
$db = new mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD',
'dbname', 3307, $tunnel)
or die ('Fail: ' . mysql_error());
任何人有任何想法?我正在Liquidweb上運行共享的CentOS Linux主機。
任何關於使隧道持續的想法?是否可以使用另一個腳本來建立它,並在PHP
中利用它?
謝謝。
您意識到該共享主機上的其他人也將能夠連接到您的數據庫嗎? – Zoredache 2008-11-21 18:01:23
它仍然需要有效的用戶名和密碼才能連接,但這是一個明確的風險。如果隧道是在php中每次執行創建的,情況會是這樣嗎? – 2008-11-21 18:09:48
我刪除了我以前的答案,正如我在閱讀文檔時注意到的那樣,它比我想要獲得mysqli使用SSL更多。 – Powerlord 2008-11-21 18:20:38