#背景
こんな感じで、sshで接続できるのは、とあるサーバが1台だけで
その先にプライベートネットワーク上では、アクセスできるmysqlに繋ぎたいときどうすれば良いかの話です。
#方法
##Windowsの場合
Tera Termにすばらしい機能がついてます!
SSHポート転送!!
Web Serverにsshでログインした状態で、このSSHポート転送でローカルのポートを画像のように設定します。
これにより、mysql -h 127.0.0.1 -P 13306 -u root -pで接続できるようになります。
これだけだと、a5m2とかのsshトンネル接続で良いじゃないかと思われると思います。
私の場合、cakephpから、sshトネリング接続するのが困難だったのでこの手を使いました。
レプリケーションしている場合に
13306は、マスターの3306へ
23306は、スレーブの3306へ
という事が可能になるのです。
ちなみに、Tera Termの設定を保存しておかないと毎回設定する羽目になります。
##Macの場合
いろいろやった結果、Coccinellidaが一番でした。
http://coccinellida.sourceforge.net/
https://sourceforge.net/projects/coccinellida/files/
brewでもインストール可能です。
http://macappstore.org/coccinellida/
brew cask install coccinellida
###トンネルを設定と接続
1.上部メニューの小さいてんとう虫をクリックすると「Preferences…」というのがあるので、それを開きます。
2.Tunnelタブを開きます。
3.Addボタンでトンネル設定を追加します。
4.Generalではトンネルになるホストの設定をします。
Name: わかりやすい任意の名前(xxxトンネルとか)
Host: ホスト名
Port: 22 (他のポート指定がある場合はそのポート番号)
User: ユーザー名
Password: パスワード
Identity: 秘密鍵を選択します。
5.Port Forwardingでは、トンネルを介して接続する本命のサーバーの設定をします。Addボタンで追加します。
Type: localのまま
Local Port: 13306 (任意のポートでもいい)
Local Host: localhost
Remote Host: 10.102.55.203(本命のサーバーのIP、ホスト名)
Remote Port: 3306 (他のポート指定がある場合はそのポート番号)
これでsave(保存)。
再びてんとう虫をクリックすると、追加したサーバー名が出ているので、選択して接続します。
パスワードを要求されるので、入力して接続します。
接続成功しても何も起きないので達成感ありません。
あとは、Windowsの時と同じように、ローカルのポートへ接続すればOK