通过 SSH 连接到远程数据库提供了安全高效的方式数据访问方式。 SSH 充当传输 MySQL 查询的加密通道,保护敏感信息免遭拦截。
要建立 SSH 隧道,请使用带 -L 开关的 ssh 命令指定本地端口转发。此交换机通过 SSH 将流量从指定的本地端口重定向到数据库服务器的远程 IP 地址和端口。
例如,以下命令设置从本地端口 3307 到 10.3.1.55 的数据库服务器的隧道: 3306 通过 ssh-jumpbox.com 上的 SSH 代理:
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
现在隧道已建立,配置您的 PHP 应用程序以通过本地端口连接到数据库。这涉及到在 MySQL 连接函数中指定“127.0.0.1:3307”作为主机参数,如下例所示:
$smysql = mysql_connect("127.0.0.1:3307", "dbuser", "passphrase");
此连接字符串指向 MySQL 使用本地端口 3307,这将通过 SSH 隧道转发到数据库服务器。
使用 mysqli_connect 时出现错误“mysqli_connect()期望参数 6 为字符串,给定资源”表示函数参数不匹配。确保第五个参数(应该是隧道资源)是包含资源连接详细信息的字符串,而不是资源本身。
以上是如何在 PHP 中通过 SSH 隧道安全连接到 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!