首頁  >  文章  >  後端開發  >  如何解決 PHP SSH MySQL 連線中的「mysqli_connect(): Parameter 6 Expected to Be a String, Resource Given」錯誤?

如何解決 PHP SSH MySQL 連線中的「mysqli_connect(): Parameter 6 Expected to Be a String, Resource Given」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-10-21 22:27:311062瀏覽

How to Resolve

在PHP 中透過SSH 連接到MySQL 伺服器

嘗試使用SSH 和PHP 的ssh2 連接到遠端MySQL 資料庫中,提供的程式碼遇到錯誤:「mysqli_connect() 期望參數6 為字串,給定資源。」當預期為字串(隧道資源)的參數提供為資源時,就會出現此問題。

SSH 隧道解決方案

克服此挑戰,可以建立安全的SSH隧道來連接MySQL資料庫伺服器。此隧道可作為客戶端和資料庫之間的加密通道,透過安全 SSH 連線路由所有通訊。

(A) GUI 工具

  • Visual Studio Code: 支援具有擴充的 SSH 隧道。
  • TablePlus: 提供內建 SSH 隧道功能。
  • PuTTY: 允許為 SSH 設定本機連接埠轉送。

(B) 命令列

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn