はじめに

EC2からRDSへの接続時に「ERROR 1045 (28000)」エラーが発生したので、解決策を調べました。
「ERROR 1045 (28000)」エラーが発生するのは色々な原因がある様ですが、調べた範囲でまとめます。

今回発生した事象

これまでEC2からRDSへの接続時には、以下コマンドを実行し問題なく接続できていました。

[ec2-user@ip-*-*-*-* ~]$mysql -u 【ユーザー名】 -p -h 【エンドポイント名】
Enter password:
[ec2-user@ip-*-*-*-* ~]$

しかし、いつからか分からないのですが、上記コマンドで接続できなくなり、以下エラーが発生する様になりました。

[ec2-user@ip-*-*-*-* ~]$mysql -u 【ユーザー名】 -p -h 【エンドポイント名】
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'*.*.*.*' (using password: YES)
[ec2-user@ip-*-*-*-* ~]$

「ERROR 1045 (28000)」エラーについて

パスワードや権限問題で発生するエラーの様です。

今回試した解決策

EC2からRDSへ接続する時に管理者権限でコマンドを実行することで解決できました。

[ec2-user@ip-*-*-*-* ~]$sudo su -
[root@ip-*-*-*-* ~]$mysql -u 【ユーザー名】 -p -h 【エンドポイント名】
Enter password:
[root@ip-*-*-*-* ~]$

その他解決策の記事

今回のエラーを解決する上で、これから述べる解決策は試していませんので、参考として見ていただければと思います。

  • EC2からではなくローカルPCからRDSに接続する時に発生する場合
  • IAM 認証を利用してRDSに接続する時に発生する場合 [1]
  • RDSのユーザーを作成する時のホスト設定が原因で発生する場合

[1]:IAM 認証を使用して Amazon RDS for MySQL に接続しようとすると、アクセス拒否エラーが発生するのはなぜですか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-mysql-access-denied/