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に接続するには,まずは新しい接続設定を作成する必要がある。
上記画像の赤枠で囲った「+」ボタンから新しい接続設定を作成する画面に移行することができる。
以下より,設定項目について説明する。
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」ボタンを押して,接続のテストを行う。
以下のような画面が表示されれば,接続が成功している。
接続が失敗するとき
接続が上手くいかないときは,以下の3点を確認する。
- 秘密鍵のフォルダ・ディレクトリ・ファイル名に日本語が含まれていないか
- 秘密鍵にppkファイルなどを指定していないか
- ファイアウォールの設定で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)を許可する必要がある。