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