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

Keycloak开发模式默认H2数据库为空,核心数据存储位置在哪?

Keycloak开发模式下H2数据库定位与访问问题解答

为什么你看到的H2数据库是空的

开发模式下,Keycloak默认使用内存型H2数据库,而非你找到的C:\Users\[UserName]\data\keycloakdb.mv文件。这个文件只是未被实际使用的空占位文件,所以登录H2控制台后只能看到系统默认的INFORMATION_SCHEMA表。内存H2的生命周期和Keycloak进程绑定,进程关闭后数据直接消失。

正确访问业务数据的步骤

1. 提取内存H2的连接地址

启动Keycloak后,在控制台日志里搜索JDBC URL,会找到类似这样的日志行:

JDBC URL: jdbc:h2:mem:keycloak;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE

这里的jdbc:h2:mem:keycloak就是内存H2的真实连接地址。

2. 登录H2控制台查看数据

  • 打开H2控制台(默认访问地址是http://localhost:8080/h2-console)
  • 在登录界面填入以下参数:
    • JDBC URL:粘贴刚才从日志里拿到的内存H2地址
    • User Name:默认是sa
    • Password:留空即可
  • 点击Connect,就能看到包含REALM、USER_ENTITY、CLIENT等业务表的完整数据库了。

让开发模式数据持久化的方法

如果想把数据保存到本地文件(重启Keycloak后不丢失),可以在启动时添加参数指定文件型H2数据库:

kc.bat start-dev --db=h2 --db-url=jdbc:h2:file:C:\Users\[UserName]\data\keycloakdb;DB_CLOSE_DELAY=-1

之后Keycloak会把所有业务数据写入你指定的文件,直接用这个文件路径作为JDBC URL登录H2控制台,就能看到所有持久化的数据。

内容的提问来源于stack exchange,提问作者Georgi D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:10:34