PHP 関数を使用して SSH 経由でリモート Linux マシン上でホストされている MySQL データベースへの接続を確立するのは難しい場合があります。提供されたコードを使用すると、「mysqli_connect() はパラメータ 6 が文字列であることを期待しており、リソースが指定されています」というエラーが発生することがあります。
コードは、mysqli_connect() 関数を使用して、 SSH トンネル経由でデータベースに接続します。ただし、mysqli_connect() 関数は 6 番目のパラメータとして文字列 (トンネルを示す) を期待しますが、ssh2_tunnel() 関数はリソースを返します。
解決するにはこの問題では、MySQL データベース サーバーへの SSH トンネルをセットアップします。効果的な方法の 1 つは、セキュリティ強化のために 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 中国語 Web サイトの他の関連記事を参照してください。