プログラミング

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)

 

流れを説明しましたが、僕と同じエラー状態にある人だけ事項のエラーの原因を参考にしてください。

エラー原因

考えられるエラー原因は以下の通りです。

・入力するマスターパスワードが間違っている

・記述ミス

・EC2,RDSの設定が上手くいってない

構文が違う

入力するマスターパスワードが違う

パスワードが違えば接続することができません。

Mysql接続で求められるパスワードはパソコンにログインする際のパスワードではなく、RDSでデータベースを作成した時に登録したマスターパスワードです。

忘れてた方は再登録することもできるので、一度調べてみましょう。

EC2,RDSの設定が上手くいってない

Mysqlへの接続はEC2の登録とRDS作成が完璧に済んでからでないとエラーが発生します。

もしかしたら設定を間違ってしまったかも…

という方はぜひ初期設定から見直してみましょう。

構文が違う

僕はこれで解決しました。

ネットの記事を参考にmysql接続を行っていたのですが、その際に使っていた構文がこちら

$ mysql -u root -p -h rdsのエンドポイント

 

先ほど紹介した構文です。

ただ、こちらでは接続できず、AWS公式ドキュメントに載っていた以下の構文を入力することで接続することができました。それがこちら

$ mysql -h <endpoint> -P 3306 -u <mymasteruser> -p

asdふぁsd

入力すると

はい。接続することができました。

もし、こちらの構文を試したことがない人は一度試してください。

詳しい流れや説明はAWS公式ドキュメントに記載されています。

まとめ

以上でMysqlへ接続できないエラーが解消されました。

今回学んだことはこちら

エラーが起きた際、まず確認するのは公式ドキュメント

公式は最新の情報が書かれているので、エラーを解決するにはぴったりです。

ぜひご参考ください。