如何解决pgAdmin中pg_dump密码认证失败的备份错误?
解决pgAdmin备份时pg_dump用Windows用户名的问题
1. 手动指定备份用的数据库用户
备份时pg_dump默认调用了你的Windows当前用户,这是核心问题,直接在备份对话框里修正:
- 右键要备份的数据库,选择「Backup...」
- 切换到「Options」标签页,找到「User name」输入框,手动填入
postgres - 回到「General」标签页,确认备份输出路径是你提前创建好的、有写入权限的文件夹(比如
C:\Postgres_Backups,避免用系统默认的无权限路径) - 点击「Backup」,弹出密码输入框时输入postgres用户的密码
2. 确保pg_hba.conf配置生效
之前修改后没效果,大概率是没重启服务或配置规则不对:
- 找到pg_hba.conf文件:通常在
C:\Program Files\PostgreSQL\[你的版本号]\data目录下 - 用记事本打开,找到IPv4和IPv6的连接规则,修改为:
(如果是PostgreSQL 10及更早版本,把host all all 127.0.0.1/32 scram-sha-256 host all all ::1/128 scram-sha-256scram-sha-256替换为md5) - 保存文件后,按下Win+R输入
services.msc打开服务管理器,找到「postgresql-[版本号]」服务,右键选择「重启」
3. 验证postgres用户密码正确性
如果仍提示密码验证失败,先确认密码是否正确:
- 在pgAdmin里右键左侧的服务器,选择「Properties」
- 切换到「Connection」标签页,点击密码框旁的眼睛图标,确认显示的密码是否正确
- 若忘记密码,按以下步骤重置:
- 先停止PostgreSQL服务
- 以管理员身份打开命令提示符,执行:
cd "C:\Program Files\PostgreSQL\[版本号]\bin" postgres.exe -D "C:\Program Files\PostgreSQL\[版本号]\data" -c listen_addresses=localhost -c password_encryption=scram-sha-256 - 新开一个命令提示符,执行:
psql -U postgres - 在psql交互界面输入:
ALTER USER postgres WITH PASSWORD '你的新密码'; \q - 关闭之前的postgres进程,重启PostgreSQL服务
内容的提问来源于stack exchange,提问作者OPtimistic
相关产品推荐
相关产品推荐

