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

H2 Database提示可用但登录时显示‘数据库未找到’问题求助

H2内存数据库提示可用但控制台登录失败(数据库未找到)

问题详情

使用H2 Database 2.1.214 + Spring Boot 2.5.9,启动日志显示数据库已创建且控制台可用,但通过H2控制台登录时提示“数据库未找到”。

启动日志

DEBUG [main] [Log Context: ]  org.springframework.jdbc.datasource.DriverManagerDataSource:134 Loaded JDBC driver: org.h2.Driver
DEBUG [main] [Log Context: ]  org.springframework.jdbc.datasource.DriverManagerDataSource:144 Creating new JDBC DriverManager Connection to [jdbc:h2:mem:testdb]
INFO  [main] [Log Context: ]  o.s.boot.autoconfigure.h2.H2ConsoleAutoConfiguration:68 H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:testdb'

配置文件(application.properties)

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

错误截图

数据库未找到错误截图

解决方案

1. 修改数据源URL,添加DB_CLOSE_DELAY=-1参数

H2内存数据库默认在最后一个连接关闭时会销毁数据库。Spring Boot启动完成后,初始创建的连接可能会关闭,导致H2控制台连接时找不到数据库。在JDBC URL中添加DB_CLOSE_DELAY=-1可强制数据库保持存活:

修改application.properties中的数据源URL:

spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1

2. 确保控制台登录参数与配置完全一致

登录H2控制台时,需严格匹配配置信息:

  • 驱动类:org.h2.Driver
  • 用户名:sa
  • 密码:留空
  • JDBC URL:jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1(必须和配置文件中的URL完全一致)

3. 重启应用后重新尝试

修改配置后重启Spring Boot应用,再访问/h2-console按正确参数登录即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:45:30