WSL环境安装PostgreSQL12出现postgres用户密码认证失败问题
WSL环境PostgreSQL 12 "postgres用户密码认证失败" 解决方案
确认配置修改已生效
修改pg_hba.conf后必须重载或重启PostgreSQL服务才会生效,WSL环境执行命令:sudo service postgresql restart重启后执行以下命令,确认加载的配置文件路径与你修改的路径一致,避免修改到错误的配置文件:
sudo -u postgres psql -c "show hba_file;"重置postgres用户密码
若配置生效后仍报错,可临时调整认证规则重置密码:- 编辑
pg_hba.conf,将本地Unix socket连接的认证方式改为trust:local all postgres trust - 重启PostgreSQL服务后,无需密码登录postgres用户:
sudo -u postgres psql - 执行SQL命令重置密码,替换为自定义密码即可:
ALTER USER postgres PASSWORD '你的自定义密码'; - 退出psql后,将
pg_hba.conf的对应配置改回md5,再次重启服务即可使用新密码登录。
- 编辑
排查WSL特有连接问题
- 若使用Windows侧的pgAdmin4连接WSL内的PostgreSQL,需填写WSL实例的内网IP作为连接地址,可在WSL内执行
ip a查看eth0网卡的IP填入pgAdmin配置,部分WSL版本127.0.0.1端口映射存在异常,会导致连接失败。 - 编辑
postgresql.conf,将listen_addresses参数改为'*',重启服务后允许外部地址访问。
- 若使用Windows侧的pgAdmin4连接WSL内的PostgreSQL,需填写WSL实例的内网IP作为连接地址,可在WSL内执行
验证连接配置正确性
可在WSL内直接执行以下命令测试密码是否生效,排除pgAdmin配置填写错误的问题:psql -U postgres -h 127.0.0.1输入密码后可正常登录即代表PostgreSQL侧配置正常,需核对pgAdmin的连接地址、端口、用户名、密码参数是否填写正确。
内容的提问来源于stack exchange,提问作者Guigz
相关产品推荐
相关产品推荐

