MacでEC2からRDSへ接続することができない。エラー解決方法をご紹介
どうもYumaです。
WEBアプリを作成している中で、AWSのEC2からRDSへ接続しようとすると、
Access denied for user 'ec2-user'@'000.00.0.000' (using password: YES)
というエラーが発生しました。
2時間ほど悩んだのち、解決することができたので忘備録として記事にします。
注)本記事ではEC2の設定、RDSの作成が終わっている環境を想定して進めていきます。
エラーの内容
MacでEC2からRDSへ接続する際に問題が発生。
問題点を解析するためにもEC2へ接続する段階から順を追って見ていきます。
まずはターミナルを開き、EC2へ接続。その後RDSへ接続する際にエラーが発生しました。流れは下記の通り
$ssh -i ~/.ssh/キーペア(〇〇.pem) ユーザー名(初期はec2-user)@パブリックIPアドレス
↑EC2へ接続
その後、EC2上でデータベースへ接続するためMysqlをインストールします。
$ sudo yum -y install mysql
↑Mysqlをインストール
最後に、Mysqlへと接続するのですが、ここで事件が発生しました。
$ mysql -u root -p -h rdsのエンドポイント
とターミナルに入力したところ、Mysqlには接続できず、以下のメッセージが表示されました。
ERROR 1045 (28000): Access denied for user 'ec2-user'@'000.00.0.000' (using password: YES)
流れを説明しましたが、僕と同じエラー状態にある人だけ事項のエラーの原因を参考にしてください。
エラー原因
考えられるエラー原因は以下の通りです。
入力するマスターパスワードが違う
パスワードが違えば接続することができません。
Mysql接続で求められるパスワードはパソコンにログインする際のパスワードではなく、RDSでデータベースを作成した時に登録したマスターパスワードです。
忘れてた方は再登録することもできるので、一度調べてみましょう。
EC2,RDSの設定が上手くいってない
Mysqlへの接続はEC2の登録とRDS作成が完璧に済んでからでないとエラーが発生します。
もしかしたら設定を間違ってしまったかも...
という方はぜひ初期設定から見直してみましょう。
構文が違う
僕はこれで解決しました。
ネットの記事を参考にmysql接続を行っていたのですが、その際に使っていた構文がこちら
$ mysql -u root -p -h rdsのエンドポイント
先ほど紹介した構文です。
ただ、こちらでは接続できず、AWS公式ドキュメントに載っていた以下の構文を入力することで接続することができました。それがこちら
$ mysql -h <endpoint> -P 3306 -u <mymasteruser> -p
入力すると
はい。接続することができました。
もし、こちらの構文を試したことがない人は一度試してください。
詳しい流れや説明はAWS公式ドキュメントに記載されています。
まとめ
以上でMysqlへ接続できないエラーが解消されました。
今回学んだことはこちら
公式は最新の情報が書かれているので、エラーを解決するにはぴったりです。
ぜひご参考ください。
では!
Discussion