Posgresqlでは、PGPASSWORD
(およびPGUSER
)という変数を設定できるため、psql
やpg_dump
などのpostgresqlコマンドを使用するときにパスワードを使用する必要はありません。
しかし、Postgresql 9.3.10で動作させることができず、動作するかのようにサイトにドキュメント化されているため、少し混乱しています。
だから次のようなコマンド
PGPASSWORD=password psql -l
動作しないでしょう。
また、私は事前にそれらを宣言することもできません
PGUSER=root
PGPASSWORD=password
psql -l
それでもパスワードを要求します(ただし、この場合は、必要に応じてrootユーザーを使用します)
何らかの方法でそれを機能させる唯一の方法は、.pgpass
ファイルを実行することでしたが、特定のデータベースを使用する場合にのみ機能し、アスタリスクは機能せず、psql -l
などのすべてのpostgresqlコマンドではなく、pg_dumpでのみ機能します。
localhost:5432:*:root:password
これらが役立つ場合の私のpg_hba.conf
設定です。
local all root md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
Host all all 127.0.0.1/32 md5
# IPv6 local connections:
Host all all ::1/128 md5
すべてのデータベースとコマンドで機能させる方法は、.pgpassファイルに以下を追加することです。
localhost:5432:dbname:user:password localhost:5432:*:user:password
2行目だけを追加しても機能しない場合は、両方を追加する必要があります。
奇妙な。