PostgreSQL pg_dump実行時に「FATAL: ユーザ “xxx” で対向(peer)認証に失敗しました」が発生した場合の対応

PostgreSQL pg_dump実行時に「FATAL:  ユーザ “xxx” で対向(peer)認証に失敗しました」が発生した場合の対応

pg_dumpコマンドを使用してバックアップを実行した際に、エラー「 FATAL: ユーザ “xxx” で対向(peer)認証に失敗しました」が発生した際の対処法を記述

環境

  • OS Ubuntu19.04
  • PostgreSQL 11.5

エラー内容

pg_dump -U username dbname > dumpfile.`date "+%Y%m%d"`

<出力結果>
pg_dump: [アーカイバ(db)] データベース"dbname"への接続が失敗しました: 
FATAL:  ユーザ "username" で対向(peer)認証に失敗しました

原因

pg_hba.confでlocalへのアクセスがpeerになっているため

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.0.0/16         md5

対処法

peerをmd5に変更すると利用しているアプリケーションにエラーが発生してしまうので、「IPv4 local connections」はmd5になっていたことは確認済みなため、アクセス方法を指定して実行して解決しました。

pg_dump -U username -h 192.168.xxx.xxx dbname > dumpfile.`date "+%Y%m%d"`
パスワード: <パスワードを入力>