SSH を使用してデータベースに接続中にエラーが発生しました。 ssh2ライブラリ。具体的には、エラーは「mysqli_connect() はパラメータ 6 が文字列であることを期待しており、リソースが指定されています。」です。
上記のエラー メッセージは、間違った型を mysqli_connect() に渡したことを示唆しています。 mysqli_connect 関数の 6 番目のパラメータ。
この問題を解決するには、6 番目のパラメータとしてリソースの代わりに文字列を渡します。この場合、このパラメータは SSH トンネル ソケットへのパスであることが想定されます。
SSH 経由で MySQL サーバーに接続するには、次の設定を行う必要があります。次の手順を使用して SSH トンネルを作成します。
1. SSH トンネル コマンド:
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
2. MySQL クライアント接続:
トンネルが設定されたら、ローカル MySQL クライアントを使用して MySQL サーバーに接続できます:
mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase
3. PHP 接続:
最後に、PHP アプリケーションで MySQL サーバーに接続します:
<code class="php"><?php $smysql = mysql_connect("127.0.0.1:3307", "dbuser", "passphrase"); mysql_select_db("db", $smysql); ?></code>
セキュリティに関するメモ:
拡張版セキュリティを確保するには、MySQL サーバーに直接接続する代わりに、SSH プロキシとして要塞ホスト (Jumpbox) を使用します。
以上がPHP で SSH 経由で MySQL に接続するときの「mysqli_connect() はパラメータ 6 が文字列であることを期待しており、リソースが指定されています」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。