PHP で SSH 経由で MySQL サーバーに接続する方法: トラブルシューティングとベスト プラクティス

Mary-Kate Olsen
リリース: 2024-10-21 22:30:30
オリジナル
615 人が閲覧しました

How to Connect to a MySQL Server Over SSH in PHP: Troubleshooting and Best Practices

PHP で SSH 経由で MySQL サーバーに接続する

概要

SSH 経由でリモート MySQL サーバーに接続するには、ローカルとの間に安全なトンネルを確立する必要があります。マシンと MySQL データベース サーバー。このガイドでは、SSH トンネルのセットアップと PHP を使用したデータベースへの接続に関連する手順の概要を説明します。

エラー解決

エラー「mysqli_connect() はパラメーター 6 が文字列であることを期待しており、リソースが指定されています」 mysqli_connect() の 6 番目のパラメータが MySQL トンネルを表す文字列ではない場合に発生します。この問題を解決するには、次に示すように、6 番目のパラメータを ssh2_tunnel 関数の出力になるように変更します。

<code class="php">$connection = ssh2_connect('SERVER IP', 22);

ssh2_auth_password($connection, 'username', 'password');

$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307);

$db = mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 
                         'dbname', 3307, stream_get_contents($tunnel))
    or die ('Fail: '.mysql_error());</code>
ログイン後にコピー

セキュア ポート フォワーディング

MySQL サーバーに接続するための推奨ソリューションSSH は SSH トンネルを確立することです。トンネルを設定するための 2 つのオプションは次のとおりです。

GUI ツール

組み込みの SSH トンネリング サポートを提供する Visual Studio Code や TablePlus などの GUI MySQL クライアントを使用します。

コマンド行

次のコマンドを使用してローカル ポート転送を設定します:

<code class="bash">ssh -fNg -L 3307:10.3.1.55:3306 [email&#160;protected] </code>
ログイン後にコピー

トンネルが確立されたら、PHP スクリプトのローカル ポート (3307) を介して MySQL サーバーに接続します。

<code class="php"><?php
      $smysql = mysql_connect( &quot;127.0.0.1:3307&quot;, &quot;dbuser&quot;, &quot;passphrase&quot; );
      mysql_select_db( &quot;db&quot;, $smysql ); 
?></code>
ログイン後にコピー

セキュリティに関する考慮事項

データベース サーバーがインターネットに直接公開されるのを防ぐために、ジャンプボックス サーバーを介してトンネルを確立することが重要です。さらに、セキュリティを強化するために、パスワード認証の代わりに SSH キー認証を使用することを検討してください。

以上がPHP で SSH 経由で MySQL サーバーに接続する方法: トラブルシューティングとベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!