首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postgres备份脚本而不是postgres用户

postgres备份脚本而不是postgres用户
EN

Stack Overflow用户
提问于 2014-03-12 16:30:53
回答 1查看 10.3K关注 0票数 5

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

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

这是我开始的地方,但问题是,当我执行脚本时,它会出现一个错误,即没有提供密码。

代码语言:javascript
复制
#!/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 {} \;

以下是错误:

代码语言:javascript
复制
pg_dump: [archiver (db)] connection to database "MyDatabase" failed: fe_sendauth: no password supplied
EN

回答 1

Stack Overflow用户

发布于 2014-03-12 23:23:01

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

手册对此作了说明:

  • .pgpass
  • 环境变量
  • 客户端认证

搜索错误消息会找到相关的信息。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22357934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档