pgAdmin 4 登录PostgreSQL 10服务器时输入正确密码仍报错怎么办
PostgreSQL 10 确认密码正确仍无法登录的解决步骤
对应报错截图:
1. 检查pg_hba.conf认证配置
- 找到PostgreSQL 10数据目录下的
pg_hba.conf配置文件:- Windows默认路径:
C:\Program Files\PostgreSQL\10\data\pg_hba.conf - Linux默认路径:
/var/lib/pgsql/10/data/pg_hba.conf
- Windows默认路径:
- 查找你登录所用的IP、用户、数据库对应的配置行,若认证方式为
peer或ident,这两类认证会优先匹配系统用户身份,忽略PostgreSQL自身设置的密码,需要将认证方式修改为md5 - 保存配置后重启PostgreSQL服务生效:
- Windows:在服务管理器中重启
postgresql-x64-10服务 - Linux:执行命令
systemctl restart postgresql-10
- Windows:在服务管理器中重启
2. 重置用户密码(验证密码是否匹配)
如果修改认证配置后仍报错,可通过免密登录重置密码确认:
- 先临时修改
pg_hba.conf中本地连接的认证方式为trust,重启PostgreSQL服务 - 本地执行命令登录postgres超级用户:
psql -U postgres - 执行SQL命令重置对应用户的密码:
ALTER USER 你的登录用户名 WITH PASSWORD '你设置的明文密码'; - 重置完成后将
pg_hba.conf的认证方式改回md5,再次重启服务即可。
3. 排查特殊场景问题
- 若密码包含$、!、空格等特殊字符,命令行登录时需要用单引号包裹密码,图形化工具输入时不要额外添加转义字符,避免转义后密码与实际设置值不匹配
- 确认你登录的IP、端口对应你设置密码的PostgreSQL实例,部分设备可能安装了多个PostgreSQL实例,默认5432端口被其他实例占用,会出现连接到错误实例导致密码验证失败的问题
内容的提问来源于stack exchange,提问作者Khayal Asadzade
相关产品推荐
相关产品推荐


