Ubuntu
在 Postgresql 9.3 上使用 PGPASSWORD 變數似乎不再起作用
在 Posgresql 中,您可以設置一個名為
PGPASSWORD
(andPGUSER
) 的變數,這樣您在使用 postgresql 命令時不必使用密碼,例如psql
orpg_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
事實證明,使其適用於所有數據庫和命令的方法是在 .pgpass 文件中添加以下內容:
localhost:5432:dbname:user:password localhost:5432:*:user:password
如果您只添加第二行,它將不起作用,您需要將兩者都添加。
奇怪。