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(): パラメーター 6 は文字列であることが予想され、リソースが指定されました」というエラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。