有什么方法可以修复 pgpass.conf 以在 Windows 上正常工作吗?

Pee*_*era 5 windows postgresql batch-file pgadmin

基于我之前的问题How to fix Automated Backup script for postgres [Window]?

我的电脑似乎存在一些问题,pgpass.conf在尝试使用 备份数据库时似乎没有提供所需的密码pg_dump。我发现我的情况很奇怪。但是,我不知道如何解决这个问题。

  1. 在我的电脑上,没有postgresql要保留的文件夹pgpass.conf-> 我尝试安装 Postgres,但看起来错误消息显示

    运行安装后步骤时出现问题。安装可能无法正确完成。数据库集群初始化失败。

    但是,我的电脑上已经有一个pgAdmin文件夹。

  2. 我尝试pgpass.conf通过使用dir /s | find /i "pgpass.conf"from root来查找c:\

    pgpass.conf结果看起来它甚至不存在于我的电脑上 -> 这就是为什么我尝试在文件夹pgAdmin而不是文件夹内创建一个新文件postgresql

  3. 我也尝试设置一个环境变量,基于What do I need for pg_dumpall to work without a password? 。控制台上显示错误

    “PGPASSWORD”未被识别为内部或外部命令

    我尝试像这样添加/编辑脚本

@echo off    
  echo 192.168.1.161:5432:_wolfcom:postgres:1234>"%APPDATA%\pgAdmin\pgpass.conf"
  set "root=C:\Program Files (x86)\pgAdmin 4\v3\runtime\"
  cd /d "%root%"
  PGPASSWORD=R0m3o^%%Ech0-5910^& pg_dumpall -h 192.168.1.161 -w -U postgres _wolfcom > "D:\Backup\DatabaseBackUp\32312.sql" 
  pause
Run Code Online (Sandbox Code Playgroud)

有人能弄清楚如何让pgpass.conf工作正常进行吗?

这是批处理文件的当前脚本

@echo off    
  echo 192.168.1.161:5432:_wolfcom:postgres:R0m3o^%%Ech0-5910^&>"%APPDATA%\pgAdmin\pgpass.conf"
  set "root=C:\Program Files (x86)\pgAdmin 4\v3\runtime\"
  cd /d "%root%"
  pg_dump.exe -h 192.168.1.161 -p 5432 -U postgres -F c -b -v -f "D:\Backup\DatabaseBackUp\SQL\123456.backup" _wolfcom
  pause
Run Code Online (Sandbox Code Playgroud)

这是适合我的脚本

@echo off    
  echo 192.168.1.161:5432:_wolfcom:postgres:R0m3o^%%Ech0-5910^&>"%APPDATA%\postgresql\pgpass.conf"
  set "root=C:\Program Files (x86)\pgAdmin 4\v3\runtime\"
  cd /d "%root%"
  pg_dump.exe -h 192.168.1.161 -p 5432 -U postgres -F c -b -v -f "D:\Backup\DatabaseBackUp\SQL\123456.backup" _wolfcom
  pause
Run Code Online (Sandbox Code Playgroud)

Lau*_*lbe 6

就像文档所说:

在 Microsoft Windows 上,该文件被命名%APPDATA%\postgresql\pgpass.conf(其中%APPDATA%指用户配置文件中的应用程序数据子目录)。

您不必搜索它,它必须恰好在这个位置(除非您设置PGPASSFILE环境变量)。如果不存在,则创建它。

另一种(也许更简单)的方法是使用 pgAdmin 并选中它为您保存密码的复选框。这会自动创建密码文件。