我有一个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密码来运行我的脚本吗?
所以我发现为了让这个脚本从系统用户运行。
没有为postgres设置密码,我无法运行它
$ sudo -i -u postgres
$ psql
$ ALTER USER postgres with PASSWORD'new_password';
然后在运行脚本的使用系统主目录中创build一个.pgpass文件!
$ echo'*:*:*:postgres:new_password'>〜/ .pgpass
$ chmod 0600〜/ .pgpass
而已。
我的错误是:
希望这个帮助!
如果您以root身份运行脚本:
sudo -u postgres psql
如果您以其他系统用户身份运行脚本,请在执行上述命令之前,使用visudo为此用户添加sudo权限。
<Systemuser> ALL=(postgres) NOPASSWD: /usr/bin/psql