postgresql – pg_dump密码验证失败错误与Windows中的pgpass.conf文件

我无法进行备份,因为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计划任务,因此我不希望用户输入密码.

最佳答案 我发现了这个问题.创建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%
点赞