1.情報がより重要である、暗号化通信が望まれています。
2.なポート3306などの一部のポートは、ルータが無効になっています。
より直接的な解決策の最初の質問は、MySQLのコードを変更、またはいくつかの証明書を使用することですが、このアプローチは明らかに非常に単純ではありません。
ここで紹介する別の方法は、リモートのMySQLを接続するためにSSHチャネルを使用することで、非常に簡単です。
SSHトンネルを確立
あなただけがローカルで次のコマンドを入力する必要があります。
SSH -fNg -L 3307:127.0.0.1:3306 [email protected]
コマンドは、リモートコマンド(-N)を実行する(-f)バックグラウンドに移動しない、MYUSERとしてremotehost.comにログインSSH伝え、ポート転送(-L次に、localport:ローカルホスト:次に、remoteport)を設定します。この場合、我々はremotehost.com上のポート3306にローカルホスト上のポート3307を転送します。
MySQLを接続する2つの
さて、あなたは同じローカルデータベースへのアクセスと同様に、ローカル介してリモートデータベースに接続することができます。
mysqlの -h 127.0.0.1 -P 3307 -u DBUSER -pデシベル
コマンドは(remotehost.com:3306にssh経由で転送されます)ポート3307をlocalhostに接続するために、ローカルのMySQLクライアントに指示します。クライアントとサーバー間のデータ交換は、現在暗号化されたssh接続を介して送信されます。
やMySQLクエリブラウワー3307クライアントアクセスポートを使用しています。
PHPと同様に、アクセス:
1 <?PHP 2 $ smysql = にmysql_connect( "127.0.0.1:3307"、 "DBUSER"、 "PASS" ); 3 mysql_select_db( "DB"、$のsmysql )。 4?>
デーモンそれを作ります
必ず接続が失敗した場合に、起動とrespawns上で動作させるために迅速かつ汚い方法は、/ etc / inittabファイルに追加し、initプロセス(、ええと、カーネル)行きそれを維持することです。
各クライアントの/ etc / inittabファイルに以下を追加します。
SM:345:復活します。/ usr / bin / sshの-ng -L 3307:127.0.0.1:3306 [email protected]
そして、それはあなたがする必要があるすべてでなければなりません。それはコンフィギュレーションをリロードするために(-HUP 1を殺す)HUP信号initを送信します。それをオフにするには、再びラインとHUPのinitをコメントアウト。