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 が文字列であることを期待し、リソースが指定されています」は、関数パラメーターの不一致を示します。 5 番目のパラメーター (トンネル リソースである必要があります) が、リソース自体ではなく、リソース接続の詳細を含む文字列であることを確認してください。
以上がPHP で SSH トンネル経由で MySQL データベースに安全に接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。