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