MySQL Workbench 6.0でサーバ側のDBに接続する方法

MySQL Workbench 6.0を使っている。Amazon EC2で作成したインスタンスにMySQLを設置し,そこにMySQL Workbenchで接続を試みたところ,失敗し,4時間ほど持っていかれたので,接続方法と接続が失敗するときの解決方法をメモしておく。
 

MySQL Workbench 6.0でSSHを経由してDBに接続する

今回はMySQL Workbenchを使って,SSHを経由してサーバのDBに接続する方法について説明する。
 
MySQL Workbench 6.0を起動すると,以下のような画面が表示される。DBに接続するには,まずは新しい接続設定を作成する必要がある。
 
mysqlworkbench_new_connection
 
上記画像の赤枠で囲った「+」ボタンから新しい接続設定を作成する画面に移行することができる。
 
mysqlworkbench_setup_new_connection
 
以下より,設定項目について説明する。
 

Connection Name

接続設定に付ける名前なので,適当に入力する。
 

Connection Method

今回は,Standard TCP/IP over SSHを選択する。
 

SSH Hostname

ホスト名とポート番号を指定する。書式としては以下のようになる。
 
ホスト名:ポート番号
 
具体例としては,以下のようになる。
 
54.238.127.117:22
 

SSH Username

SSH接続で使用するユーザ名を入力する。Amazon Linuxの場合は,デフォルトのec2-userを指定する。
 

SSH Password

SSH接続で使用するユーザのパスワードを入力する。
 

SSH Key File

SSH接続に使用する秘密鍵を指定する。Amazon Linuxの場合は,インスタンス生成時に作成した秘密鍵(pemファイル)を指定する。
 
※SSH Key Fileの指定には,日本語が含まれるフォルダ・ディレクトリ・ファイル名を指定することはできない。指定したとしても,接続の際にエラーとなる。
 

MySQL Hostname

SSH接続先のサーバにMySQLが設置されている場合は,127.0.0.1,もしくはlocalhostを指定する。どちらの指定方法もサーバ上から見たローカルを指定している。
 

MySQL Server Port

MySQLで使用するポート番号を指定する。デフォルトでは,MySQLは3306番ポートを使用するので,3306と指定する。
 

Username

MySQL内部で使用されるユーザ名を指定する。デフォルトでは,rootという名前のユーザが作成されているので,特に問題無ければrootを指定する。
 

Password

MySQL内部で使用されるユーザに設定されているパスワードを入力する。Usernameにrootを選択した場合,デフォルトではrootユーザにパスワードは設定されていないので空欄のままでよい。
 
これで,必要な設定項目の入力が完了したので,接続設定をテストするために画面下部の「Test Connection」ボタンを押して,接続のテストを行う。
以下のような画面が表示されれば,接続が成功している。
 
Connection parameters are correct
 

接続が失敗するとき

接続が上手くいかないときは,以下の3点を確認する。

  1. 秘密鍵のフォルダ・ディレクトリ・ファイル名に日本語が含まれていないか
  2. 秘密鍵にppkファイルなどを指定していないか
  3. ファイアウォールの設定で22番,及び3306番ポートへの接続を許可しているか

以下より,それぞれの点について説明する。
 

秘密鍵のフォルダ・ディレクトリ・ファイル名に日本語が含まれていないか

MySQL Workbenchの接続設定で使用した,SSH Key Fileには,日本語を含むフォルダ・ディレクトリ・ファイル名を指定することができない。もし,指定した場合は接続の際にエラーとなる。
 

秘密鍵にppkファイルなどを指定していないか

ppkファイルは,putty専用の形式に変換された秘密鍵なので,MySQLWorkbenchでは使用することができない。ppkファイルの生成元になった秘密鍵があるはずなので,そちらを使用する。
 

ファイアウォールの設定で22番,及び3306番ポートへの接続を許可しているか

ファイアウォールの設定で22番ポート,及び3306番ポートの使用を許可しなければ,DBに接続することができない。Amazon EC2であれば,AWSマネージメントコンソールから,Security Groupsに対して,22 (SSH),及び3306 (MYSQL)を許可する必要がある。
 
 
以上
 
 
参考
自分で行った検証の結果

Article written by

コメントを残す