Ubuntu

在 Postgresql 9.3 上使用 PGPASSWORD 變數似乎不再起作用

  • May 28, 2018

在 Posgresql 中,您可以設置一個名為PGPASSWORD(and PGUSER) 的變數,這樣您在使用 postgresql 命令時不必使用密碼,例如psqlorpg_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

如果您只添加第二行,它將不起作用,您需要將兩者都添加。

奇怪。

引用自:https://serverfault.com/questions/747238