Postgresql

PostgreSQL:使用 .pgpass 文件

  • August 8, 2021

我一直在閱讀該.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應該足夠了。

如果要使用預設值以外的使用者和數據庫,請使用環境變數 PGUSERPGDATABASE.

引用自:https://dba.stackexchange.com/questions/297741