MySQLにssh経由で接続する色々な方法
今回はMySQLに接続する方法についてです。
MySQLへ接続するときはCUIからmysqlコマンドで接続したり、MySQL WorkbenchなどのGUIツールを使って接続していると思います。
開発時などであればそれで良いですが、実際にリリースされた本番環境やステージング環境のMySQLに接続しようとすると、単純に接続できないかと思います。FWによってMySQLのポートに到達できなかったり、到達できてもMySQLの設定で接続できなかったり・・・。
そこで今回はsshを経由することでMySQLに接続する方法をまとめてみました。
- mysqlコマンドで接続する方法
- MySQL workbenchで接続する方法
- Sequelで接続する方法
- Intellij IDEA Database tool
前提知識
どの方法もSSHトンネル(SSHポートフォワード)という技術を使います。これはMySQLやDB特有の技術ではないので、覚えておくと良いと思います。
mysqlコマンドの場合
これについてはこちらが参考になると思います。
AWS RDSを使っていて、publicでの直接接続ができない設定になっている場合はssh tunnelが必要です。RDSの方は以下の記事も参考になるでしょう。
Amazon VPC 内の RDS(MySQL) に SSH のポートフォワードを利用して接続するメモ
本題ですが、コマンドはこんな感じです。
ssh -f -N -C -L 10000:localhost:3306 hoge
mysql -u root -p -h 127.0.0.1 --port=10000
hogeの部分は適宜.ssh/configに設定した設定名か他の直接指定方式に変えましょう。バックグラウンドでトンネリングが動いているので必要なくなったらps aux | grep sshした後でkillって終わりです。
もしsshコマンドをshell script内で動かす場合はps aux | grep sshだと少し使い辛いのでlsofの方が良いかもしれません。以下の記事をご覧下さい。
MySQL Workbenchの場合
実際にはCUIだと厳しいものがあるので、GUIツールを使うと思います。MySQLのGUIと言えばWorkbenchが一番多機能かつ公式、ということで有名かと思います。
Workbenchでの接続方法ですが、非常に簡単です。
Standard TCP/IP over SSHを選択して、後はsshのIP(or hostname), user name, pass, secret key、に加えて接続先のSSHの情報を入れればOKです。
Advancedタブの方には圧縮転送オプションなどがあるので必要に応じて設定してください。
Sequelの場合
Sequelも人気のMySQL GUIツールです。
こちらも基本的に同じですね。
SSHタブに入力して終わりです。
Intellij IDEA Database toolの場合
これは利用ユーザは少ないと思いますが、私はよく利用しています。
IDEA使っている人のみですが、コード書きつつDBいじれるのは良いと思いますよ。
これも同じです。2つのタブに分かれていはいますが、SSHの設定を追加で入れるだけ。
いかがでしたでしょうか?
今回はMySQLと上記のツールでの例でしたが、大抵どのツールでもSSHトンネルをサポートしているかと思います。
GUIツール+ssh tunnelで快適なDBライフをお過ごしください!