業務でクライアントPCから MySQL Workbench を使って、踏み台サーバーの先にあるMySQLに接続したいという要望があったので、そのときの対応です。
クライアント・サーバーの構成イメージ
構成イメージは、以下の図の通りです。
- クライアント:Windows
- 踏み台サーバー:Amazon Linux
- DBサーバー:Amazon Linux
クライアントからMySQL Workbenchを利用し、
踏み台サーバーを経由で、DBサーバーにあるMySQLのデータベースに接続します。
踏み台サーバーからMySQLへの接続設定
ここでは、踏み台サーバー ⇔ MySQL 間の接続設定を行います。
すでに、踏み台サーバーからMySQLに接続できる方は、飛ばしてください。
MySQLで踏み台サーバー用のユーザーを作成
まずは 、DBサーバーのMySQLにroot でログインします。
次に、ユーザーを作成しますが、アクセスを許可する IP アドレスまたはホスト名を指定します。
ここでは、作成するユーザー名を test_user、踏み台サーバーのIPアドレスを 172.20.21.240 とします。
$ mysql -u root -p
mysql> CREATE USER "test_user"@"172.20.21.240" IDENTIFIED BY [password];
作成できているか確認します。
mysql> SELECT user, host FROM mysql.user;
+---------------+-----------------+
| user | host |
+---------------+-----------------+
| test_user | 172.20.21.240 |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------------+
次に権限を与えます。
今回は参照権限のみ与えます。
※全権限を与えるコマンドも記載しておきます。
# 参照権限のみを付与する場合
mysql> GRANT SELECT ON *.* TO "test_user"@"172.20.21.240";
# 全権限を付与する場合
mysql> GRANT ALL PRIVILEGES ON *.* TO "test_user"@"172.20.21.240";
AWSで踏み台サーバー ⇔ DBサーバーの通信を許可する
AWSのセキュリティグループで、DBサーバーは許可した通信以外は、禁止の設定にしています。今回、踏み台サーバーからのアクセスを許可するために設定を変更します。
AWSのコンソールから、DBサーバーのセキュリティグループで、ポート3306を踏み台サーバー向けに許可する設定を追加します。
踏み台サーバーにmysql clientをインストール
踏み台サーバーにログインし、mysql clientをインストールします。
$ yum install mysql-community-client
$ rpm --import https://repo.mysql.com/RPM-GPC-KEY-mysql-2022
踏み台サーバーからMySQLへ接続確認
踏み台サーバーからMySQLに接続できるか確認します。
踏み台サーバーにログインして、コマンドでMySQLに接続します。
DBサーバーのIPアドレスを172.20.22.120とします。
$ mysql -h 172.20.22.120 -u test_user -p [DB名]
無事、ログインできればOK!
MySQL Workbenchの設定
ここからクライアントPCの作業です。
まず、MySQL Workbenchをインストールします。
次に設定です。
スタートメニューからWorkbenchを起動します。
+ボタン から新しいコネクションを作成します。
以下、赤枠を埋めていきます。
- SSH Hostname:172.20.21.240 (踏み台サーバーのIPアドレス)
- SSH Username:[踏み台サーバーのユーザー名]
- MySQL Hostname:172.20.22.120 (DBサーバーのIPアドレス)
- MySQL Server Port:3306
- Username:test_user
- Default Schema:[DB名]
設定完了後、Test Connection ボタンを押下します。
SuccessfullyがでればOKです!
接続確認
作成したコネクションを起動します。
試しにSQLを実行してみます。
ちゃんと結果が返ってきました。
まとめ
はまったところとしては、踏み台サーバー用のMySQLユーザーを作成するところでした。ホスト名にIPアドレスを設定しないといけないので、そこがポイントでした。
コメント