1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RailsでのDB接続エラー

Posted at

エラー

AWS CodeBuild上でAurora(MySQL)に接続してrails db:migrateしようとすると、Access Denied。
この問題を解決するのにかなりの時間を費やしたので、メモ + 共有。

検証 + 解決方法

  • そもそもDBは起動しているか。
  • ネットワークとして、互いに接続できる状態か。(セキュリティグループ設定が正しいか)
  • MySQLクライアントでDBに接続できるか。
mysql -h <ホスト> -u <DBユーザ名> --password=<DBパスワード> <DB名>
  • DBホストを名前解決できているか。
nsloolup <ホスト>
  • DBから応答はあるか。(CodeBuildで実行)
mysqladmin ping -h <ホスト> -u <DBユーザ名> --password=<DBパスワード> <DB名>

私の場合、以上に関しては問題が無かった。
そのため、Railsの設定のどこかが間違っているのだろうと当たりをつけることができた。

  • Railsの設定は正しいか。
    私の場合は、原因はdatabase.ymlの設定だった。のように修正することで解決した。
# 不具合が起こる場合がある書き方
password: <%= ENV['RDS_PASSWORD'] %>
# 正
password: "<%= ENV['RDS_PASSWORD'] %>"

上側の記述方法で何が悪いかというと、下記の記事にもあるように、パスワードの先頭が記号#だった場合に無効になってしまうこと。
https://taker.hatenablog.com/entry/2020/02/18/000922

今回、パスワードをランダムな文字列で生成するようにしていたため、パスワードの先頭が#になっていた。

以上

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?