Bash
從 bash 腳本轉儲 pg db .pgpass 被忽略
我正在嘗試使用我們的舊方法轉儲一個 postgreSQL 數據庫,但我遇到了一些問題。
舊方法只是信任 localhost 中的所有連接(在 pg_hba.conf 中),但新方法設置
md5
為所有人。這是我們用來轉儲數據庫的舊腳本
su postgres -c "pg_dump -U $DBUSER $DBNAME -Fc > /tmp/dbbackup.dump" mv /tmp/dbbackup.dump /var/www/vhosts/$SITE/httpdocs/backup/
並且抱怨密碼,所以我創建了
.pgpass
in/root/
然後chmod 0600
嘗試了命令,但它不起作用,仍然抱怨密碼,所以我將所有者和組更改為postgres
但同樣的錯誤。錯誤在哪裡?如何備份我的數據庫?
su postgres -c “pg_dump ……
. . . 並且抱怨密碼,所以我在 /root/ 中創建了 .pgpass
請記住su命令的這種用法。
- 將執行競賽更改為指定帳戶。
- 執行給定的命令。
您要求系統以 postgres 帳戶的身份執行pg_dump命令 。
因此,.pgpass 文件需要位於postgres帳戶的主目錄中,而不是root帳戶的主目錄中。