pg_dumpall没有提示密码

时间:2018-05-18 04:58:09

标签: postgresql postgresql-10 pg-dumpall

我们正在尝试自动备份群集的所有PostgreSQL数据库,我们决定使用' pg_dumpall'效用。但我们无法找到执行“pg_dumpall”的方法。没有提示密码。我们正在使用PostgreSQL-10。

我们正在尝试执行以下命令

pg_dumpall -U "username" -h "hostname" > "location"

如何在不提示密码的情况下自动化pg_dumpall?请帮助我们。 感谢

1 个答案:

答案 0 :(得分:1)

我正在回答我自己的问题

我们可以使用" .pgpass"文件以避免提示密码

"创建和使用.PGPASS文件

=====================================

.pgpass文件允许您使用postgres CLI工具,如psql和pg_dump,而无需手动输入密码 - 您可以使用脚本中的程序,而无需将其作为非密码保护的用户运行。

首先,创建.pgpass文件

#nano /root/.pgpass 

根据官方文件,该文件的格式如下:

hostname:port:database:username:password

该文件支持使用#标签表示注释,*支持在通配符上匹配。以下是我的一个例子:

*:*:*:postgres:jerry_pass 

输入您的数据库信息并保存。

接下来,设置权限。如果它们不是600 Postgres将忽略该文件。

#chmod 600 /root/.pgpass

现在我们如何让postgres使用它?通过psql手册页快速扫描显示:

-w, --no-password 

永远不会发出密码提示。如果服务器需要密码身份验证,并且其他方式(如.pgpass文件)无法使用密码,则连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中非常有用。

以下是一些使用示例:

#psql -d postgres -U postgres -w
#pg_dump -U postgres -w -Fc   "
相关问题