You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot项目连接PostgreSQL报密码认证失败如何解决

解决方案

问题根因

报错提示用户enock密码认证失败,核心原因有两个:

  • PostgreSQL所有角色均未配置密码,但Spring Boot的application.properties中配置了spring.datasource.password=root,两边校验不匹配
  • PostgreSQL默认的本地连接认证策略可能不允许无密码登录

修复步骤

方案一:适配无密码配置(适合本地开发测试场景)

  1. 修改application.properties配置,删除或清空密码配置,修改后配置如下:
spring.datasource.url=jdbc:postgresql://localhost:5432/student
spring.datasource.username=enock
# 密码配置留空或者直接删除该行
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.format_sql=true
  1. 如果修改后仍报错,需要调整PostgreSQL的客户端认证配置:
    • 找到PostgreSQL安装目录下的pg_hba.conf文件,不同系统默认路径不同:
      • Linux:/var/lib/postgresql/<对应版本号>/main/pg_hba.conf
      • Windows:PostgreSQL安装路径下的data目录内
      • MacOS:/Library/PostgreSQL/<对应版本号>/data/pg_hba.conf
    • 找到以下两行配置,将末尾的认证方式从md5/scram-sha-256改为trust:
      host    all             all             127.0.0.1/32            trust
      host    all             all             ::1/128                 trust
      
    • 重启PostgreSQL服务生效。

方案二:给角色设置密码(更规范,无需修改PostgreSQL默认配置)

直接登录PostgreSQL,执行SQL给enock用户设置和配置文件一致的密码:

ALTER USER enock PASSWORD 'root';

该方案不需要修改Spring Boot原有配置,执行完SQL直接重启项目即可。

验证方法

修复完成后先在本地执行命令验证数据库可正常登录:

psql -U enock -d student

确认可正常登录后再启动Spring Boot项目即可。

内容的提问来源于stack exchange,提问作者enockmale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:30:04