Postgres 14.3创建用户连接提示密码认证失败问题咨询
Postgres 14.3 Windows本地切换用户认证失败排查步骤
按以下顺序排查即可解决问题:
- 先确认用户名、密码正确性
保持当前postgres超级用户连接,执行\du查看所有已创建的数据库用户:如果创建用户时没有给用户名加双引号,Postgres会自动把用户名转成全小写,也就是说你执行create user Naruto实际创建的用户是naruto,切换时写大写Naruto会找不到对应用户直接报认证失败。
确认用户名后,执行以下命令重置用户密码,避免创建密码时多打空格、输错字符:
注意密码是严格字符匹配的,命令里密码前后不要加多余空格。另外psql输入密码时默认不会显示任何输入内容(包括星号占位符),盲输完成直接按回车即可,不要因为看不到输入内容反复敲字符导致密码错误。ALTER USER 你的实际用户名 WITH PASSWORD 'secret'; - 调整本地连接认证规则(对应教程无需输密码的配置)
教程里切换用户不需要输密码,本质是配置了本地连接免认证,本地个人学习环境可以直接按这个配置调整:- 找到Postgres安装目录下data文件夹里的
pg_hba.conf文件,默认安装路径为C:\Program Files\PostgreSQL\14\data\pg_hba.conf,用记事本打开 - 拉到文件最底部的连接规则段,把本地连接对应的3条规则的METHOD字段改成
trust,修改后效果如下:# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 127.0.0.1/32 trust host all all ::1/32 trust - 保存文件后,按Win+R输入
services.msc打开Windows服务列表,找到postgresql-x64-14服务,右键选择重启,配置才会生效。
- 找到Postgres安装目录下data文件夹里的
- 验证效果
重启服务后回到psql,执行\c staff 你的实际用户名,就可以直接切换到对应数据库,不需要输入密码,也不会再报认证失败错误。
注意:
trust认证仅适合本地个人学习环境使用,不要在生产、公网可访问的数据库上用这个配置,会有安全风险。
内容的提问来源于stack exchange,提问作者Nas
相关产品推荐
相关产品推荐

