Windows 中 pgpass.conf 文件出现 pg_dump 密码身份验证失败错误

问题描述 投票:0回答:2

我无法进行备份,因为 pg_dump 显示以下错误。

pg_dump: [archiver (db)] connection to database "mydb" failed: 
FATAL:  password   authentication failed for user "postgres"
password retrieved from file 
"C:\Users\MyName\AppData\Roaming\postgresql\pgpass.conf"

这就是我的 pgpass 文件的样子。

localhost:5432:mydb:postgres:mypassword

当我删除 pgpass.conf 文件并运行 pg_dump 文件时,它会提示输入密码并且备份正常运行。

这就是 pg_dump 脚本的样子。

set PGPASSFILE=%APPDATA%\postgresql\pgpass.conf
%PG_BIN%pg_dump -h %PG_HOST% -p %PG_PORT% -U %PG_USER% -F c -b -v -f %BACKUP_FILE% %DB%

这是一个Windows计划任务,所以我不希望用户输入密码。

postgresql batch-file scheduled-tasks postgresql-9.4 pg-dump
2个回答
3
投票

我发现问题了。创建 pgpass.conf 文件的脚本在密码后创建了一个空格,该空格导致密码 - mypassword 错误。所以当我删除空间时,它可以正常工作!

创建 pgpass 文件的脚本是:

echo %PG_HOST%:%PG_PORT%:*:%PG_USER%:%PG_PASSWORD% > %PGPASS_FILE%

我将其更改为以下内容。看到 PG_PASSWORD% 和 > 之间的空格被删除了。

echo %PG_HOST%:%PG_PORT%:*:%PG_USER%:%PG_PASSWORD%> %PGPASS_FILE%

0
投票

我不小心删除了该文件夹。我所做的是在以下目录中创建一个文件

C:\Users\AppData\Roaming\postgresql

然后添加一个文件

pgpass.conf

在我添加的文件中

本地主机:5432:*:postgres:密码

© www.soinside.com 2019 - 2024. All rights reserved.