我在Windows服務器環境中安裝了Postgresql數據庫。我想沒有要求輸入密碼才能計劃使用Windows任務調度運行,每天晚上,所以我需要運行下面的命令作業:psql要求輸入密碼並且不能從pgpass.conf中讀取
psql -U myUserName-d myDBName -c "select MyFunctionName()"
當我在cmd
shell中運行上面的查詢,它問我密碼。當我手動輸入密碼時,該功能正確運行。
所以我的解決方案是從pgpass.conf
文件讀取,所以不需要密碼。
這裏是我做了實現這一目標的事情:
我在我的%appdata%
創建(AppData\Roaming\postgresql
要準確)的目錄中創建的文件pgpass.conf
。
下面是這個文件的內容:
localhost:5432:myDBName:myUserName:myPassword
我也試圖與價值127.0.0.1
,而不是上面localhost
。
我,然後,添加一個環境變量(在用戶變量對於管理員列表)稱爲PGPASSFILE
並賦予它pgpass.conf
位置。
;C:\Users\administrator\AppData\Roaming\postgresql\pgpass.conf
最後,我停止並重新啓動Windows服務上的Postgres服務並重新運行該命令。但它仍在要求輸入密碼。
如何讓我的命令知道從哪裏讀取密碼?
在文件名起始處的';'看起來不對 –
@a_horse_with_no_name我嘗試了使用和不使用它。但它似乎沒有什麼區別。 – Disasterkid
您是否嘗試在cmd提示符下首先設置PGPASSFILE? –