尝试使用 SSH 和 PHP 的 ssh2 连接到远程 MySQL 数据库库中,提供的代码遇到错误:“mysqli_connect() 期望参数 6 为字符串,给定资源。”当预期为字符串(隧道资源)的参数作为资源提供时,就会出现此问题。
克服此挑战,可以建立安全的SSH隧道来连接MySQL数据库服务器。此隧道充当客户端和数据库之间的加密通道,通过安全 SSH 连接路由所有通信。
第 1 步: 建立使用“-L”开关的 SSH 隧道。
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
在此示例中,本地端口 3307 上的流量将转发到位于 10.3.1.55:3306 的远程数据库服务器。
第 2 步: 使用本地端口连接到数据库。
mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase
PHP 应用程序现在可以使用 SSH 转发的连接来连接到数据库。
<code class="php"><?php $smysql = mysql_connect("127.0.0.1:3307", "dbuser", "passphrase"); mysql_select_db("db", $smysql); ?></code>
通过设置SSH隧道,与远程MySQL数据库的连接变得高度安全。数据通过加密的 SSH 通道进行交换,防止未经授权的访问。
以上是如何解决 PHP SSH MySQL 连接中的'mysqli_connect(): Parameter 6 Expected to Be a String, Resource Given”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!