Thursday, October 26, 2017

MySQL SSH Tunnel Command Line Login

今回のプロジェクトはAWSにサーバを立てて
DBはMySQLを使っています。

AWSでDBにアクセスするときは常に踏み台のサーバを経由してSSHでアクセスしなければならない形に構築されています。

MySQL Workbenchにしろ、A5M2にしても普通にSSHトンネルでログイン出来るようになっていますが、mysqldumpを使いたいと思ったので、SSHトンネルを自分でコマンドラインから入力して実行してみました。

まず、SSHですが、Windowsのコマンドからは初期状態では使えません。
OpenSSHをインストールするか、開発でGitを使っているならGitBashを使ってSSHコマンドを使える状態にします。

ssh -i -f -N -C -L [バインドするローカルのポート]:<MySQLサーバのIPアドレス>:3306  @<踏み台のIPアドレス> -p 22

ここでport1は自分のローカルのポートですので、ローカルで空いているポートを指定しましょう。するとローカルのに対する接続が踏み台サーバを経由して、MySQLの動いているサーバの3306ポートに転送されます。
ぶっちゃけ-f とか -N とか -C とかは無くてもOKです。

ここからMySQLへの接続を下記のコマンドで実行できます。
mysql -u -P [バインドしたローカルのポート] -h localhost -p

MySQL Dumpを実行する場合は下記のコマンドです。
mysqldump -u -p -P [バインドしたローカルのポート] [db_name] > [file_name]

クライアントツールも便利ですがコマンドラインから繋いでおけると
バッチでデータを調査したり等いろいろと使い易いので出来ると便利です。


No comments:

Post a Comment