嘗試使用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中文網其他相關文章!