在Posgresql中,您可以设置一个名为PGPASSWORD (和PGUSER )的variables,因此在使用postgresql命令(如psql或pg_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
如果只添加第二行,则不起作用,需要同时添加。
离奇。