使用PGPASSWORDvariables在Postgresql 9.3上似乎不再有效

在Posgresql中,您可以设置一个名为PGPASSWORD (和PGUSER )的variables,因此在使用postgresql命令(如psqlpg_dump时不必使用密码

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

所以命令就像

PGPASSWORD=password psql -l

不pipe用。

我也不能像之前那样宣布他们

PGUSER=root

PGPASSWORD=password

psql -l

它仍然要求密码(尽pipe在这种情况下,它使用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 

原来,使其与所有数据库和命令工作的方式是通过在.pgpass文件中添加以下内容:

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

如果只添加第二行,则不起作用,需要同时添加。

离奇。