我们正在尝试自动备份群集的所有PostgreSQL数据库,并决定使用'pg_dumpall‘实用程序。但是我们找不到在不提示密码的情况下执行'pg_dumpall‘的方法。我们使用的是PostgreSQL-10。
我们正在尝试执行以下命令
pg_dumpall -U "username" -h "hostname" > "location"我们如何在不提示密码的情况下自动执行pg_dumpall?请在这方面帮助我们。谢谢
发布于 2018-05-18 13:12:32
我在回答我自己的问题
我们可以使用".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 切勿发出密码提示。
以下是一些使用示例:
#psql -d postgres -U postgres -w
#pg_dump -U postgres -w -Fc "https://stackoverflow.com/questions/50404041
复制相似问题