如何在IntelliJ IDEA中修复「指定数据库用户名/密码组合被拒绝」问题
PostgreSQL 28P01密码认证失败解决方案
The specified database user/password combination is rejected:
[28P01] FATAL: password authentication failed for user 'postgres'
第一步:校验基础连接参数
- 核对填写的用户名、密码和PostgreSQL配置的
postgres用户密码完全一致,注意排查前后空格、大小写问题,绝大多数报错都是复制操作附带多余空格导致。 - 核对连接地址的端口、数据库名配置正确,PostgreSQL默认端口为
5432,如果做过自定义修改需要填写实际端口。 - 确认连接的PostgreSQL实例为目标环境实例,避免误连其他环境数据库导致密码不匹配。
第二步:排查PostgreSQL侧认证规则配置
- 找到PostgreSQL安装目录下的
pg_hba.conf配置文件:Windows环境默认存放在安装目录的data子目录下,Linux环境默认存放在/var/lib/postgresql/<对应版本号>/main/目录下。 - 查看访问来源对应的认证规则,若本地访问规则的method字段配置为
ident或peer,会强制使用系统用户认证,需修改为md5或scram-sha-256,参考配置如下:
# IPv4本地连接规则示例 host all all 127.0.0.1/32 md5
- 修改配置后需重启PostgreSQL服务生效:Windows可在服务管理器中找到PostgreSQL服务重启,Linux可执行命令
sudo systemctl restart postgresql重启。
第三步:重置postgres用户密码(忘记密码场景)
- 先修改
pg_hba.conf将本地连接的认证方式改为trust,此时本地登录无需密码。 - 重启PostgreSQL服务后,执行命令
psql -U postgres登录数据库。 - 执行SQL语句修改密码:
ALTER USER postgres WITH PASSWORD '自定义新密码'; - 密码修改完成后,将
pg_hba.conf的配置改回之前的md5/scram-sha-256,再次重启PostgreSQL服务。 - 回到IntelliJ IDEA的数据源配置界面,填写新密码后测试连接即可。
第四步:IntelliJ IDEA配置校验
- 确认IDEA下载的PostgreSQL JDBC驱动版本与数据库大版本匹配,例如PostgreSQL 14及以上版本建议使用42.3.x以上版本的驱动。
- 清空IDEA保存的历史密码后重新输入,避免IDEA缓存错误密码导致认证失败。
- 若连接的是Docker部署的PostgreSQL,确认容器
5432端口已正确映射到宿主机,且容器启动时配置的POSTGRES_PASSWORD环境变量与填写的密码一致。
内容的提问来源于stack exchange,提问作者invzbl3
相关产品推荐
相关产品推荐

