アンドロイド

sshトンネルを介してmysqlに接続する方法

目次:

Anonim

デフォルトでは、MySQLサーバーはlocalhostでのみリッスンします。つまり、同じホストで実行されているアプリケーションからのみアクセスできます。

ただし、状況によっては、リモートの場所からサーバーに接続したい場合があります。 1つのオプションは、リモート接続を許可するようにMySQLサーバーを構成することですが、これには管理者権限が必要であり、セキュリティリスクを引き起こす可能性があります。

より安全な代替手段は、ローカルシステムからサーバーへのSSHトンネルを作成することです。 SSHトンネリングは、サービスポートを中継できるクライアントとサーバーマシンの間に暗号化されたSSH接続を作成する方法です。

このガイドでは、SSHトンネルを作成し、リモートクライアントからMySQLサーバーに接続する方法を説明します。 MariaDBにも同じ手順が適用されます。

前提条件

  • MySQLサーバーが実行されているシステムへのSSH Client.SSHアクセス。

LinuxおよびmacOSでSSHトンネルを作成する

ssh クライアントは、ほとんどのLinuxおよびUnixベースのシステムにプリインストールされています。

ssh -N -L 3336:127.0.0.1:3306 @

使用されるオプションは次のとおりです。

  • -N リモートコマンドを実行しないようにSSHに指示します。 -L 3336:127.0.0.1:3306 ローカルポート転送を作成します。 ローカルポート( 3306 )、宛先IP( 127.0.0.1 )、およびリモートポート( 3306 )はコロン(:)で区切られています。 @ -リモートSSHユーザーとサーバーIPアドレス。バックグラウンドでコマンドを実行するには、 -f オプションを使用します。SSHサーバーが22(デフォルト)以外のポートでリッスンしている場合、 -p オプションでポートを指定します。

コマンドを実行すると、SSHユーザーのパスワードを入力するよう求められます。 入力後、サーバーにログインし、SSHトンネルが確立されます。 SSHキーベースの認証を設定し、パスワードを入力せずにサーバーに接続することをお勧めします。

これで、ローカルマシンのMySQLクライアントが 127.0.0.1:3336 を指すようになり、リモートデータベースログイン資格情報を入力して、MySQLサーバーにアクセスできます。

たとえば、コマンドライン mysql クライアントを使用してMySQLサーバーに接続するには、次を発行します。

mysql -u MYSQL_USER -p -h 127.0.0.1

ここで、 MYSQL_USER は、データベースにアクセスする権限を持つリモートMySQLユーザーです。

プロンプトが表示されたら、MySQLユーザーのパスワードを入力します。

SSHトンネルを終了するには、sshクライアントが実行されているコンソールで CTRL+C します。

WindowsでSSHトンネルを作成する

Windowsユーザーは、まずSSHクライアントプログラムをダウンロードしてインストールする必要があります。 最も人気のあるWindows SSHクライアントはPuTTYです。 こちらからPuTTYをダウンロードできます。

PuTTYを使用してMySQLサーバーへのSSHトンネルを作成するには、次の手順を実行します。

  1. Puttyを起動し、 Host name (or IP address) フィールドにサーバーのIPアドレスを入力します。

    結論

    最も人気のあるオープンソースデータベースサーバーであるMySQLは、ローカルホストでのみ着信接続をリッスンします。 SSHトンネルを作成すると、ローカルクライアントからリモートMySQLサーバーに安全に接続できます。

    mysql mariadb ssh