web-dev-qa-db-ja.com

PGPASSWORD変数を使用しても、Postgresql 9.3では機能しないようです。

Posgresqlでは、PGPASSWORD(およびPGUSER)という変数を設定できるため、psqlpg_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
3
Ulukai

すべてのデータベースとコマンドで機能させる方法は、.pgpassファイルに以下を追加することです。

localhost:5432:dbname:user:password localhost:5432:*:user:password

2行目だけを追加しても機能しない場合は、両方を追加する必要があります。

奇妙な。

1
Ulukai