Postgresql
PostgreSQL:使用 .pgpass 文件
我一直在閱讀該
.pgpass
文件,但我無法讓它為我工作。我的
.pgpass
文件看起來像這樣:127.0.0.1:5432:accounts:fred:p@55w0rd
我將權限設置為
0600
(這是在 CentOS Linux 上)並嘗試:psql
我在哪裡得到消息:
psql:錯誤:致命:數據庫“…”不存在
…
我的使用者名在哪裡。如果我使用,我可以成功連接:
psql -u … -d accounts
所以我不認為我的
.pgpass
文件正在做它的工作。我怎樣才能讓它工作?
.pgpass
沒有定義預設數據庫。它只提供主機名、數據庫和使用者名組合的密碼。但是,您仍然需要在啟動時提供主機名、數據庫和使用者名
psql
。當您只是在
psql
沒有任何參數的情況下執行時,您並沒有提供使用者名或密碼 - 而且它不是取自.pgass
- 那裡可能有數百個條目。應該psql
拿哪一個?如手冊中所述,
psql
然後假定您目前的作業系統使用者為預設使用者。如果沒有提供數據庫,則psql
假定一個具有使用者名的數據庫(如果您也沒有提供使用者名,則使用目前作業系統使用者的名稱)。您顯然想要連接到名稱與您要使用的使用者名不同的數據庫。因此,您必須提供數據庫名稱。如果
fred
是您的作業系統使用者,那麼psql -d accounts
應該足夠了。如果要使用預設值以外的使用者和數據庫,請使用環境變數
PGUSER
和PGDATABASE
.