LoginSignup
38
30

More than 5 years have passed since last update.

MacのMysql workbenchから多段SSH接続。(ポートフォワード接続)

Last updated at Posted at 2016-06-06

Mysql workbenchで2段以上の多段SSHを使った接続方法を調べたので備忘録として残しておきます。
(踏み台1段までならMysql workbenchがサポートしてます。)

前提

  • host1とhost2の2台のサーバーが存在。
  • host2にmysqlサーバーがインストールされている。
  • host2のサーバーへはアクセス制限があり、host1からでないとアクセスできない。

やりたいこと

  • host2にあるmysqlサーバーにmacのmysql Workbenchを使って接続したい。

[Mac] ==> [host1] ==> [host2] ==> [Mysql]

実装

mysql workbenchでは1段階しか踏み台できないので、まずはターミナルからSSHで穴(ポートフォワード)をつくってからworkbenchを繋ぐ。

  • 1.host1を踏み台にしてhost2へSSH接続 → .ssh/configを使って簡単に!
  • 2.Mysql workbench接続

1.host1を踏み台にしてhost2へSSH接続

ターミナルからhost1を踏み台にする設定。
後から簡単なコマンドで接続できるように.ssh/configを編集する方法を解説します。
(~/.ssh/configは無ければディレクトリと合わせて新規作成)

~/.ssh/configに接続情報を記載。

~/.ssh/config
Host host1
  hostname XXX.XXX.XXX.101
  port 22
  user user1
  IdentityFile ~/.ssh/user1.pem

Host host2
  hostname XXX.XXX.XXX.102
  port 22
  user user2
  IdentityFile ~/.ssh/user2.pem
  ProxyCommand ssh host1 -W %h:%p
  GatewayPorts   yes
  LocalForward   53306   127.0.0.1:3306

ポートフォワード
GatewayPorts yes
LocalForward 53306 127.0.0.1:3306 ←この部分。
- 53306 ← local(自分のMac) に開くポート番号(任意の数字)
- 127.0.0.1:3306 ← 接続先情報(127.0.0.1 = host2 の 3306ポート)

ファイルを保存したらターミナルから下記のコマンドで接続。
$ssh host2

これでlocalhostの53306ポートがhost2の3306と接続され利用可能に。
※ ターミナルを終了させると、接続も切れるのでターミナルは開いたままに。

2.Mysql workbench接続

ターミナルでポートフォワードしたlocalhostのポートを使って接続します。
Mysql workbenchでは普通のサーバーを追加するのと同じ要領で下記のように設定。
Mysql workbench Screenshot

設定内容
Hostname: 127.0.0.1 ← これは自分のMac
port: 53306 ←自分で開けたポート番号
Username: mysqluser
pass:*****

これで登録した接続を開けば connection successです!


ちなみに、SSHを閉じた状態で接続しようとすると、
Server Status が Stopped と表示されます。
Mysql workbench status view

38
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
30