2013年4月7日日曜日

HerokuのDB接続時のエラー「FATAL: password authentication failed for user "xxx" (PG::Error)」

Herokuの標準DBであるPostgresに接続する外部スクリプトを使っていたある日、突然、該当DBに接続できなくなり、ハマったのでメモ。


  • 事象
    • 外部スクリプトから、HerokuのDBに接続しようとすると「FATAL: password authentication failed for user "xxx" (PG::Error)」エラーが発生し、接続できない。
  • 原因
    • 答えを先に言うと、「Herokuのメンテナンスのタイミングで、DBの設定情報が変更されていた」でした。
    • さらにHerokuからのメールをよくみると、ちゃんと「DBの設定情報が変更される。app側の設定は適切に変更しておくから」と書いてありました。


[Heroku Support] Maintenance is required for your database (ticket #xxxxx)
Your database HEROKU_POSTGRESQL_xxx_URL on xxx-xxx-xxx requires maintenance. During this period, your database credentials will become read-only. Once it has completed, your database URL will have changed, but we will update your app's config variables accordingly.
We expect maintenance to last just a few moments. We will update this ticket once it's complete


  • 対応
    • Herokuのサポート対象外(Herokuが知る由もない)外部スクリプトのDB接続情報を適切なものにupdateするだけ。
    • Heroku DBの設定情報は「heroku config」コマンドで確認。こちらを参照。


原因が分かったらなんてことはないが、なかなか「メンテナンスによる設定変更」ということに気づけなかったので、残しておきます。
このエントリーをはてなブックマークに追加