本地Spring Boot+H2数据库环境下解锁Liquibase锁的方法求助
解决Liquibase DatabaseChangelogLock锁表问题(H2文件数据库)
方案1:通过H2独立控制台直接修改锁表
无需启动Spring Boot应用,直接连接H2文件数据库修改锁状态:
- 下载与项目依赖版本一致的H2数据库独立JAR包
- 启动H2控制台:
java -jar h2-<版本号>.jar - 在H2控制台连接界面,填写与Spring Boot配置完全匹配的参数:
- JDBC URL:例如
jdbc:h2:file:./src/main/resources/data/mydb(需对应项目中spring.datasource.url配置) - 用户名/密码:匹配项目中
spring.datasource.username和spring.datasource.password
- JDBC URL:例如
- 连接成功后执行解锁SQL:
UPDATE DATABASECHANGELOGLOCK SET LOCKED = FALSE, LOCKGRANTED = NULL, LOCKEDBY = NULL WHERE ID = 1;
方案2:使用Liquibase命令行/插件解锁
利用Liquibase官方工具直接操作数据库解锁:
命令行方式
- 安装Liquibase命令行工具,或复用项目依赖中的Liquibase库
- 创建
liquibase.properties配置文件,填入H2连接信息:url=jdbc:h2:file:./src/main/resources/data/mydb username=sa password= driver-class-name=org.h2.Driver changeLogFile=src/main/resources/db/changelog/db.changelog-master.yaml - 执行解锁命令:
liquibase unlock
Maven/Gradle插件方式
- Maven:项目根目录执行:
mvn liquibase:unlock - Gradle:项目根目录执行:
注:需确保项目已配置Liquibase插件及H2数据库依赖gradle liquibaseUnlock
注意事项
- 必须保证H2连接参数与Spring Boot配置完全一致,否则无法定位到目标文件数据库
- 解锁后重启Spring Boot应用即可恢复正常
内容的提问来源于stack exchange,提问作者Rishav
相关产品推荐
相关产品推荐

