gpt4 book ai didi

postgresql - postgres 备份脚本不是 postgres 用户

转载 作者:行者123 更新时间:2023-11-29 11:38:26 26 4
gpt4 key购买 nike

我想创建一个 postgres 备份脚本,但我不想使用 postgres 用户,因为我所在的 unix 系统几乎没有限制。我想要做的是在 crontab 上以 unix 系统(网络)的普通用户身份运行此脚本,并在脚本中使用数据库管理员帐户。

只是为了在unix系统(网络)中清楚我有用户foo,现在我们有默认postgres用户的postgres用户,然后是数据库我们有一个数据库管理员用户 my_db_admin。我在脚本中使用 my_db_admin 用户和凭证作为网络用户 foo 执行脚本。

这就是我的开始,但问题是当我执行脚本时出现错误,提示未提供密码。

#!/bin/bash
export PASSWORD="MyPassword"
backup_dir="/BACKUP/LOCATION"
# name of the backup file has the date
backup_date=`date +%d-%m-%Y`
# only keep the backup for 30 days (maintain low storage)
number_of_days=30
pg_dump -Fc -Umy_db_admin MyDatabase -w > $backup_dir\_$backup_date
find $backup_dir -type f -prune -mtime +$number_of_days -exec rm -f {} \;

这里是错误:

pg_dump: [archiver (db)] connection to database "MyDatabase" failed: fe_sendauth: no password supplied

最佳答案

使用.pgpass 文件保存pg_dump 的密码,或设置PGPASSWORD 环境变量。或修改 pg_hba.conf 以允许使用 peer 身份验证进行无密码连接。

这在手册中有介绍:

a search for the error message会找到相关信息。

关于postgresql - postgres 备份脚本不是 postgres 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22357934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com