2014-10-10 97 views
0

我需要備份命令Postgres數據庫。PostgreSQL的9.2執行pg_dump的命令發出

我可以成功地執行命令,但命令要爲執行那麼我應該怎麼做,以避免在輸入密碼輸入密碼。

下面是命令:

pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v C:\PostgreSQL\PostgreSQL\bin\Data.backup" DB_NAME 

請建議我該怎麼辦?

在此先感謝。

回答

0

你必須改變pg_hba.confPostgreSQL Server,如果您使用pgAdmin然後轉到工具>服務器配置 - > ph_hba.conf

,改變ticked類型的方法trust

enter image description here

並重新啓動PostgreSQL server


我強烈建議你使用MD5

pg_dump

-w 引用--no密碼從未發出一個密碼提示。如果服務器需要密碼驗證,並且通過諸如.pgpass文件之類的其他方式(如 )不提供密碼,則連接嘗試將失敗。此選項 可用於批處理作業和腳本,其中不存在 用戶輸入密碼。

-W --password力告訴pg_dump連接到數據庫之前提示輸入密碼。

此選項是永遠必要的,因爲pg_dump輸出會自動 提示如果服務器要求口令認證密碼。 但是,pg_dump會浪費連接嘗試,發現 服務器需要密碼。在某些情況下,值得輸入-W以避免 額外的連接嘗試。

+0

'-W yourPassword'肯定是不正確的。 'pg_dump'在它的參數中不接受密碼,'-W'沒有幫助自動無密碼連接。 – 2014-10-10 10:55:36

0

比讓整個世界訪問你的數據庫更好的是建立一個pgpass file

這是一個簡單的文本文件,你應該確保僅受您的用戶帳戶可讀。然後,只需填寫host/port/db/user/password的詳細信息,psql和pg_dump等將自動使用它而不是提示您。

備註 - 如果其他人可以閱讀此文件,那麼他們可以看到您的密碼。所以確保他們不能。