从 bash 脚本 dump pg db .pgpass 被忽略

从 bash 脚本 dump pg db .pgpass 被忽略

我正在尝试使用我们的旧方法转储 postgreSQL 数据库,但遇到了一些问题。

旧方法只是信任本地主机中的所有连接(在 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然后/root/尝试chmod 0600了命令但它不起作用,仍然抱怨密码,所以我将所有者和组更改为postgres但错误相同。

错误在哪里?我该如何备份我的数据库?

答案1

su postgres-c“pg_dump...

。。。并对密码有异议,因此我在 /root/ 中创建了 .pgpass

记住这个用法命令确实如此。

  1. 将执行竞赛变更为具名账户。
  2. 执行给定的命令。

你要求系统运行 pg_dump 命令作为PostgreSQL 的帐户。

因此,.pgpass 文件需要位于PostgreSQL 的帐户,不是帐户。

相关内容