データベースのメンテナンスなどの用途で、特定のクライアント・マシンからのデータベースへの接続をssh経由で行うような設定を既にしている場合、 このノートで説明する方法で、そのクライアント・マシンにインストールしたExploratoryデスクトップから、その設定を利用してデータベースにssh経由で接続することができます。
上記のような事情がない場合には、Exploratoryからデータベースにセキュアに接続するには、SSLを使ったポートをデータベースに設定して、Exploratoryからはそちらのポートに接続することをおすすめします。
すでに、MySQLワークベンチ等でssh経由の接続をしていれば、 MySQLワークベンチの設定を見ればどのsshのキーが使われているかが分かるのでそれを利用する。
デフォルトの場所(~/.ssh)になければ、Macのターミナルや、Windowsであればgitbashなどを使って、登録する。
$ ssh-add <ssh_keyのファイルパス>
Macであればターミナルを、WindowsであればgitbashやPuttyなどを使って、sshのトンネルを作る。
ちなみにWindowsの場合、MobaXtermというGUIツールで設定することもできる。
sshコマンドのシンタックスは以下の通り。
ssh -P {SSH_PORT} -N -L {LOCAL_PORT}:{LOCAL_HOST}:{DB_PORT} {SSH_OS_USER}@{SSH_HOST_WHERE_DB_IS_RUNNING)}
例えば MySQL が example.com の 3306 番で動いていて、そのサーバが 20022番のポートでsshの接続を受け付ける場合を考えてみる。このときにローカルのホスト (127.0.0.1)のポート3307でDBの接続ができるようにするには以下のようにsshを実行する。
ssh -p 20022 -N -L 3307:127.0.0.1:3306 some_user@example.com
例:
sshコマンドのシンタックスは以下の通り。
ssh -P {SSH_PORT} -N -L {LOCAL_PORT}:{DB_HOST}:{DB_PORT} {SSH_OS_USER}@{SSH_HOST_WHERE_DB_IS_RUNNING)}
例えば MySQL が db.example.com の 3306 番のポートで動いていて、SSHの踏み台サーバーがssh.example.comの 20022番のポートでsshの接続を受け付ける場合を考えてみる。このときにローカルのホスト (127.0.0.1)のポート3307でDBの接続ができるようにするには以下のようにsshを実行する。
ssh -p 20022 -N -L 3307:db.example.com:3306 some_user@ssh.example.com
プロジェクトのヘッダーメニューから データコネクションを選択
追加ボタンをクリックし
ダイアログで MySQL を選ぶ
ホストに 127.0.0.1、ポートに3307 (上の例でsshのトンネルを作る際に指定した値) を指定する。データベース、ユーザー名、パスワード(必要があれば)を指定する。