当前位置: 首页 > 知识库问答 >
问题:

pg_dumpall而不提示密码 [重复]

年良骏
2023-03-14

我们正在尝试自动备份集群的所有PostgreSQL数据库,我们决定使用“pg_dumpall”实用程序。但是我们找不到在不提示密码的情况下执行“pg_dumpall”的方法。我们正在使用 PostgreSQL-10。

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

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

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

共有1个答案

韩经武
2023-03-14

我在回答我自己的问题

我们可以使用“.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   "
 类似资料:
  • 我在远程服务器上有一个git repo,并使用ssh和密码身份验证来克隆、拉、推。从命令行,一切正常。 但是在 vscode 中,当我尝试从远程存储库拉取或推送时,没有显示密码提示。Vscode似乎在等待什么,但什么也没发生。这是一个错误,还是我做错了什么? 我想在linux上使用visualstudio代码作为git客户端。 从命令行: 在vscode中:

  • 问题内容: 如何编写脚本在Ubuntu上安装MySQL服务器? 将安装,但同时还会要求您在控制台中输入密码。 如何以非交互方式进行此操作?也就是说,写一个可以提供密码的脚本吗? 问题答案: 对于特定版本,例如,您需要像这样指定版本: 对于mysql-community-server,密钥略有不同: 将your_password替换为所需的root密码。(似乎your_password也可以留空以获

  • 例子 # getpass_defaults.py import getpass try: p = getpass.getpass() except Exception as err: print('ERROR:', err) else: print('You entered:', p) # getpass_prompt.py import getpass p = ge

  • 我正在尝试为mydb表恢复空的DB,但是 的语法似乎不是直接的。我之前在执行mysqldump时创建了文件emptyDbs。

  • 介绍 {tip} 想要快速上手? 只需在一个新的 Laravel 应用中运行 php artisan make:auth 命令,然后在浏览器中访问 http://your-app.dev/register 或分配给应用的任何别的 URL。这条命令将搭建起整个身份验证系统,包括重置密码! 大多数 Web 应用都为用户提供了重置密码的功能。相比强迫你在每个应用中都要重实现一遍此功能,Laravel 提

  • 我用哈希法通过了一个密码 这将密码作为哈希值存储到数据库中。但是当我试图通过 无论密码是否正确,它都会告诉我密码是正确的。有没有办法解决这个问题,所以我可以散列密码,但登录时输入(非散列)密码。