この記事は学習した内容をアウトプットし、更に理解を深めるための記録用投稿になります。
投稿している内容と同じ箇所で躓いている方に少しでもお力添えできれば幸いです。
今回はメンターの方に教えていただき理解が深まりました。
躓いていた箇所
EC2、RDSの設定が終わりMySQLに接続する際にパスワードを入力するのですが、なかなか何も表示されずしばらくの間待った末にエラーが表示される。
MySQL サーバーに接続できません (110)。 #翻訳
mysql -u (マスタユーザ名) -p -h (エンドポイント)
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'rds-mysql-server.
******.ap-northeast-1.rds.amazonaws.com' (110)
疑った箇所
1、一番最初に思ったのはよくある登録したパスワードを忘れてしまっているのかを疑いました。またやってしまったかと、、
2、その次に思ったのはエンドポイントの記述が間違えているのかという点でした。
データベースの接続とセキュリティでエンドポイントを確認することができますが、その記述をしっかりコピーできていないのかを疑いました。
試してみたこと
1、パスワードを忘れてしまっている疑いに関しては以下の記事を参考にパスワードを再度登録して試してみました。
ですが結果は変わらず、、
2、エンドポイントは再度正しくコピーをして貼り直してみましたがこちらもうまくいかず、、
解決方法
どれだけ足掻いても自力ではきつそう、、
結局メンター様の教えをいただくことに!
結論
EC2側のセキュリティグループをRDS側のインバウンドルール(セキュリティID)が許可していないため弾かれる。
例えると、、
『EC2の持つ鍵がRDSの鍵穴と一致していない状態。』
EC2の記述は触らずにインスタンスのセキュリティグループの内容を確認します。
-> RDSでのインバウンドルールの変更でソースの欄にEC2のセキュリティグループを入力。
再度試したところ『Welcome』の文字が!待ち望んでいました^^
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 55
Server version: 5.7.22-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
やっとRDSにデータベースの作成が完了しました、、、
理解したこと
そもそものデータの流れを理解できていませんでした。
EC2 ==> RDSの流れでその際にEC2の持つ鍵とRDSの持つ鍵穴を一致させてあげること!
復習している時に疑問に思ったのはEC2側のセキュリティグループルールIDがどこから来ているのかがわからない点です。また調べてみます!
冒頭の躓いた点にある「なかなか何も表示されずしばらくの間待った末にエラーが表示される。」に関してはパスワード入力後何度もセキュリティーを抜けて通れるか試みてみたが結局ダメだったよというエラー。何回も試みていたことによってタイムラグが生じていた。
下記の順番も教えていただきそれを踏まえると今回は「2」をクリアできていない状態でした、、
なのでパスワードを疑っていましたがそれに関しては関係なかったようです( ; ; )
1、mysql -u (マスタユーザ名) -p -h (エンドポイント)が合っているかチェック。
2、インバウンドルールが合っているかのチェック(鍵が合っているか)
3、入力したパスワードをチェック。
4、パスワードをチェックしてレスポンスを返す。
今回の質問で丁寧に教えていただきかなり理解が深まったような気がします!
今後にしっかり活かしていきたいと思います。
何か間違えている点などありましたらご指摘いただけると幸いです。