Postgresql
pg_cron 擴展的“連接失敗”錯誤
已安裝
pg_cron
和計劃的作業,但由於作業未完成且cron.job_run_details
表顯示connection failed
錯誤消息而出現連接錯誤。正如醫生所說:
重要提示:在內部,pg_cron 使用 libpq 打開到本地數據庫的新連接。對於執行 cron 作業的使用者,可能需要在 pg_hba.conf 中為來自 localhost 的連接啟用信任身份驗證。或者,您可以將密碼添加到 .pgpass 文件中,libpq 在打開連接時將使用該文件。
創建
.pgpass
了帶有所需參數的文件,但不確定如何“告訴”libpq 對於這個使用者、這個主機和數據庫讀取這個.pgpass
文件。任何幫助表示讚賞。
我可能有
.pgpass
錯誤的權限或錯誤的位置(正如@PhilW 建議的那樣),但我發現完全不同的方式對我有用(順便說一句,我剛剛刪除了.pgpass
文件)。解決方案只是更改
cron.job.nodename
為空字元串:UPDATE cron.job SET nodename = '';
不知道如何“告訴”libpq 對於這個使用者,對於這個主機和數據庫讀取這個 .pgpass 文件。
你不需要。
當“擁有”它的帳戶執行任何需要密碼的 postgres 程序時,始終會讀取.pgpass 文件。
該所有權由文件的位置(即在帳戶的主目錄中)和權限(僅對所有者的讀/寫)決定。
該文件包含主機、數據庫、使用者名等以及用於每個組合的密碼。當所有其他“位”與請求的內容匹配時,Postgres 將提取並使用找到的密碼。
從The Docs,該文件包含:
hostname:port:database:username:password
因此,對於您的 HOST、DB 和 USER,您將擁有更多類似的內容:
HOST:5432:DB:USER:password