使用 PHP 函数通过 SSH 建立与远程 Linux 计算机上托管的 MySQL 数据库的连接可能具有挑战性。使用提供的代码时,可能会出现错误“mysqli_connect() Expectsparameter 6 to be string, Resource给定的”。
代码尝试使用 mysqli_connect() 函数来通过 SSH 隧道连接到数据库。但是,mysqli_connect() 函数需要一个字符串作为第六个参数(表示隧道),而 ssh2_tunnel() 函数返回一个资源。
要解决解决此问题,请设置到 MySQL 数据库服务器的 SSH 隧道。一种有效的方法是使用 Jumpbox 代理来增强安全性。此方法涉及使用 SSH 客户端创建本地端口转发隧道,从而有效地在本地计算机和数据库服务器之间创建安全通道。
使用命令行工具(SSH 隧道设置):
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
连接到数据库:
<code class="php">$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");</code>
其他注意事项:
以上是如何修复 PHP 通过 SSH 连接 MySQL 时的 mysqli_connect() 参数问题?的详细内容。更多信息请关注PHP中文网其他相关文章!