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

如何解决HikariPool初始化时的用户名或密码错误问题

问题

在Spring Boot(v3.1.4)单元测试启动过程中,遇到以下异常:

HikariPool-1 - Exception during pool initialization.
org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password

配置如下:

spring:
  flyway:
    enabled: false
  datasource:
    url: jdbc:h2:mem:testdb
    driverClassName: org.h2.Driver
    username: sa
    password: 
  h2:
    console:
      enabled: true
      path: /h2-console
  jpa:
    database: h2
    show-sql: true
    hibernate:
      ddl-auto: create-drop
    properties:
      hibernate:
        connection:
          url: "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;NON_KEYWORDS=key"
        dialect: org.hibernate.dialect.H2Dialect

Hibernate能自动创建部分表,但之后出现上述异常,请问缺少哪些配置?

解决方案

问题出在重复配置数据库连接信息,导致HikariCP与Hibernate的连接配置不一致:

  • HikariCP使用spring.datasource下的配置初始化连接池,但你给Hibernate单独配置了hibernate.connection.url,却未同步设置用户名和密码,引发认证冲突。

按以下步骤修复:

  1. 移除Hibernate单独配置的连接URL
    删除spring.jpa.properties.hibernate.connection.url这一行,Spring Boot会自动将统一的DataSource实例传递给Hibernate,无需单独配置连接地址。

  2. 合并连接参数到DataSource配置
    把原Hibernate连接URL中的参数(DB_CLOSE_DELAY=-1;NON_KEYWORDS=key)合并到spring.datasource.url中,确保连接参数统一:

spring:
  datasource:
    url: "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;NON_KEYWORDS=key"
  1. 显式设置空密码
    为避免配置解析歧义,将spring.datasource.password显式设为空字符串:
spring:
  datasource:
    password: ""

修复后的完整配置:

spring:
  flyway:
    enabled: false
  datasource:
    url: "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;NON_KEYWORDS=key"
    driverClassName: org.h2.Driver
    username: sa
    password: ""
  h2:
    console:
      enabled: true
      path: /h2-console
  jpa:
    database: h2
    show-sql: true
    hibernate:
      ddl-auto: create-drop
    properties:
      hibernate:
        dialect: org.hibernate.dialect.H2Dialect

调整后HikariCP与Hibernate将共用同一套连接配置,连接池初始化时就能正常完成认证,单元测试可正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:23:18