はじめに
AWS の RDS (Relational Database Service) にホストされた MySQL に接続する際には、適切な設定とトラブルシューティングが必要です。
この記事では、接続コマンドの説明と、接続エラーが発生した場合の確認ポイントを紹介します。
MySQL 接続コマンド
AWS RDS の MySQL に接続するには、以下のコマンドを実行します。
mysql -h RDS のエンドポイント -u root -p
このコマンドは以下のオプションを指定しています。
-
-h
:RDS のエンドポイント (ホスト名) -
-u
:ユーザー名 (例:root
) -
-p
:パスワードの入力を求めるオプション
パスワード入力を求められるので、適切なパスワードを入力してください。
接続できない場合の確認ポイント
1. ホスト名 (エンドポイント) の確認
RDS のエンドポイントが正しいか確認します。以下のコマンドで DNS 解決できるかチェックできます。
nslookup RDS のエンドポイント
または、サーバーに接続できるか ping
コマンドを使用して確認します。
ping RDS のエンドポイント
2. セキュリティグループ (SG) の設定確認
AWS RDS は セキュリティグループ (SG) の設定によりアクセスが制限されている可能性があります。
- ポート 3306 が開放されているか確認
- アクセス許可された IP に自分の端末の IP が含まれているか確認
AWS コンソールから RDS > セキュリティグループの設定 を確認し、アクセス可能な IP を追加します。
3. 認証情報の確認
-
-u root
のユーザー名が正しいか -
-p
で入力するパスワードが間違っていないか - 必要に応じて
mysqladmin
でユーザー情報を確認
4. ファイアウォールや VPN の影響
- VPN 接続中だとアクセスできない可能性 があります。
-
telnet
コマンドで RDS の MySQL ポート 3306 に接続できるかチェックできます。
telnet RDS のエンドポイント 3306
もし telnet: Unable to connect to remote host
のようなエラーが出た場合、ネットワークの制限が原因の可能性があります。
5. MySQL クライアントのバージョン
RDS の MySQL バージョンとローカルの MySQL クライアントのバージョンが適切であることを確認します。バージョンの違いによる互換性の問題が発生することがあります。
mysql --version
まとめ
AWS RDS の MySQL に接続する際に問題が発生した場合、以下の点を確認しましょう。
- ホスト名 (エンドポイント) が正しいか
- セキュリティグループの設定が適切か (ポート 3306 開放、アクセス許可 IP の確認)
- 認証情報 (ユーザー名、パスワード) が正しいか
- ネットワーク制限 (VPN、ファイアウォール、telnet での接続確認)
- MySQL クライアントのバージョンが適切か
このように、順番に確認することで接続問題の原因を特定し、適切に対処できます。