php mysql_connect(): 如何通过SSH隧道连接到MySQL服务器


php mysql_connect(): How to connect to MySQL server through SSH tunnel

我的MySQL服务器托管在外面的某个地方,需要一个ssh隧道才能到达它;如何通过PHP连接到这个服务器?以前有没有人遇到过同样的问题?

我没有,但谷歌搜索我找到了以下示例:

<?php
  shell_exec("ssh -f -L 3307:127.0.0.1:3306 user@remote.rjmetrics.com sleep 60 >> logfile");         
  $db = mysql_connect('127.0.0.1', 'sqluser', 'sqlpassword', 'rjmadmin', 3307);
?>
  • 看来您首先需要设置一个 ssh 调谐器(超时为 60 秒)。这适用于操作系统级别 (shell_exec);
  • 在此示例中,您创建一个 SSH 隧道,将 mysql 主机服务器上的 3306 端口重定向到本地端口 3307Web 服务器);
  • 然后,您连接(mysql_connect),因为mysql服务器在您自己的Web服务器中,重定向到3307端口。

我无法验证此解决方案,但我希望这可以帮助您向前迈出一步。

(来源)