备份 PostgreSQL - 提示输入密码

备份 PostgreSQL - 提示输入密码

操作系统:Ubuntu Xenial 16.04 LTS

PostgreSQL 版本:9.5.4

我正在尝试在我的服务器上设置自动数据库备份,每次运行它时pg_dump,它都会告诉我没有提供密码。这是我用来测试的命令:

pg_dump --host $DB_HOST --port 5432 --username $DB_USER --no-password  --format custom --blobs --verbose --file ~/backups/postgresql/test.backup $DB_NAME

我的所有环境变量都运行正常。为了向 PostgreSQL 提供密码,我.pgpass在 中创建了一个文件~/.pgpass。它如下所示:

# 主机名:端口:数据库:用户名:密码 $DB_HOST:5432:$DB_NAME:$DB_USER:$DB_PASS

该文件具有0600权限,如指导。但是,出于某种原因,每次运行时它都不会使用密码pg_dump。我查看了其他答案和在线的多个指南,但仍然无法找出问题所在。

任何帮助将不胜感激。

答案1

您需要在中有文字值~/.pgpass,而不是像这样的 shell 变量$DB_HOST

如果你需要环境变量,那么你可以使用 libpq (PostgreSQL 客户端库) 支持的环境变量,例如$PGDATABASE$PGPASSWORD好多其它的~/.pgpass。如果您使用它们,您根本不需要它们。

相关内容