使用 PGPASSWORD 变量似乎不再适用于 Postgresql 9.3

Ulu*_*kai 5 postgresql ubuntu postgresql-9.3

在Posgresql你可以设置一个变量称为PGPASSWORD(和PGUSER),所以你不必使用PostgreSQL命令,如时使用的密码psqlpg_dump

但我有点困惑,因为我无法让它在 Postgresql 9.3.10 上工作,而且它仍然记录在他们的网站上,好像它应该工作一样。

所以命令像

PGPASSWORD=password psql -l

不管用。

我也不能事先声明它们,例如

PGUSER=root

PGPASSWORD=password

psql -l

它仍然要求输入密码(尽管在这种情况下,它应该使用 root 用户)

我让它以某种方式工作的唯一方法是通过执行该.pgpass文件,但它仅在使用特定数据库时才有效,星号不起作用并且它仅适用于 pg_dump,而不是所有 postgresql 命令,例如psql -l

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
Run Code Online (Sandbox Code Playgroud)

Ulu*_*kai 5

事实证明,使其适用于所有数据库和命令的方法是在 .pgpass 文件中添加以下内容:

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

如果您只添加第二行,它将不起作用,您需要同时添加这两行。

奇怪。