备份postgres数据库密码问题

我有一个postgres数据库,我想定期备份。 为此,我想在这里使用自动备份脚本

通常我要继续pipe理任务我使用这些命令:

> sudo -i -u postgres > psql 

没有要求密码,我可以手动转储我的数据库。 这不是太糟糕。

使用自动脚本我面临密码问题。 它要求我提供postgres密码。 我从来没有设置它,我认为我不应该像上面给出的例子那样设置它。

这里是如何configuration我的pg_hba.conf

 # Database administrative login by Unix domain socket local all postgres peer TYPE DATABASE USER ADDRESS METHOD "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 

我真的需要设置一个postgres密码来运行我的脚本吗?

所以我发现为了让这个脚本从系统用户运行。

  1. 没有为postgres设置密码,我无法运行它

    $ sudo -i -u postgres

    $ psql

    $ ALTER USER postgres with PASSWORD'new_password';

  2. 然后在运行脚本的使用系统主目录中创build一个.pgpass文件!

    $ echo'*:*:*:postgres:new_password'>〜/ .pgpass

    $ chmod 0600〜/ .pgpass

  3. 而已。

我的错误是:

  • 认为我可以处理它,而无需设置postgres密码。
  • 试图将.pgpass放在/ var / lib / postgresql(postgres home)而不是用户系统home中。

希望这个帮助!

如果您以root身份运行脚本:

 sudo -u postgres psql 

如果您以其他系统用户身份运行脚本,请在执行上述命令之前,使用visudo为此用户添加sudo权限。

  <Systemuser> ALL=(postgres) NOPASSWD: /usr/bin/psql