PostgreSQL 15未提示密码直接报错:密码验证失败问题求助
PostgreSQL 15密码验证失败(无密码提示)的解决办法
清理Windows凭据缓存
Windows会自动保存数据库连接凭据,若之前存了错误密码,psql会直接用旧密码尝试连接,跳过输入提示。操作步骤:- 打开「控制面板」→「用户账户」→「凭据管理器」→「Windows凭据」
- 找到带「PostgreSQL」或「localhost:5432」的条目,直接删除
- 重新运行
psql -U postgres,应该会弹出密码输入框
同步用户密码加密方式
PostgreSQL 15默认用scram-sha-256加密密码,若pg_hba.conf的认证方式和用户密码存储的加密方式不匹配,就会验证失败:- 临时把pg_hba.conf里localhost对应的METHOD改成
trust,重启PostgreSQL服务 - 连接数据库后执行
ALTER USER postgres PASSWORD '你的新密码';,让系统用当前配置的加密方式重新存储密码 - 改回pg_hba.conf的METHOD为
scram-sha-256,再次重启服务
- 临时把pg_hba.conf里localhost对应的METHOD改成
强制使用IPv4连接
错误日志显示连接的是IPv6地址(::1),可能IPv6的认证规则配置有问题:
直接执行psql -U postgres -h 127.0.0.1,强制用IPv4连接,测试是否能正常提示输入密码。如果有效,可以在pg_hba.conf里单独为127.0.0.1/32配置scram-sha-256认证,确保规则优先级正确。检查监听地址配置
打开postgresql.conf,确认listen_addresses设置为'*',或者同时包含localhost和127.0.0.1,避免只监听IPv6导致认证规则不生效。
内容的提问来源于stack exchange,提问作者user16776319
相关产品推荐
相关产品推荐

