【问题标题】:PostgreSQL backup in AWS EC2 instanceAWS EC2 实例中的 PostgreSQL 备份
【发布时间】:2017-12-13 18:52:06
【问题描述】:

我想使用 crontab 运行一个脚本来备份 PostgreSQL 数据库。

我的脚本如下所示:

#!/bin/bash

current_date=`date +%Y-%m-%d`

# Delete old backups
find /home/ubuntu/backups/ * -mtime +1 -delete

# Do a full postgres cluster
pg_dump dbname | gzip > /home/ubuntu/backups/$current_date.gz

文件的所有者是root,我可以更改它吗...

当使用 sudo 执行脚本时,我看到:

pg_dump: [archiver (db)] 连接到数据库“easydjango”失败:致命:角色“root”不存在

我该怎么做?

【问题讨论】:

    标签: postgresql amazon-web-services amazon-ec2


    【解决方案1】:

    您可以通过为 pg_dump 设置 -U 选项来传递正确的凭据。

    https://www.postgresql.org/docs/current/static/app-pgdump.html

    如果您不想被提示输入密码,则需要设置 PGPASSWORD 环境变量。

    export PGPASSWORD=mypass
    pg_dump -U myuser ...
    

    【讨论】:

    • 如果我在命令行中指明-U postgres,我会收到相同的错误消息
    • 您收到同样的错误提示“root”角色不存在?
    【解决方案2】:

    如果没有明确指定,PostgreSQL 会将 osuser 本身视为 pguser。您需要在提供 pgdump 时指定用户属性。

    此外,您指定的用户名应该对您要转储的数据库具有足够的权限。

    我建议您按照此链接https://www.postgresql.org/docs/current/static/libpq-pgpass.html 中的指定创建一个 PostgreSQL 密码文件,然后尝试转储。

    【讨论】:

      猜你喜欢
      • 2020-10-10
      • 2021-04-09
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 2017-09-16
      相关资源
      最近更新 更多