我想通过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