操作系统: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
任何帮助将不胜感激。
您需要在 中包含文字值
~/.pgpass
,而不是像$DB_HOST
.如果您需要环境变量,那么您可以使用 libpq(PostgreSQL 客户端库)支持的环境变量,例如
$PGDATABASE
或$PGPASSWORD
. 还有很多其他的。您根本不需要~/.pgpass
使用它们。