使用IntelliJ IDEA连接H2数据库报错:数据库可能已被占用
解决H2文件数据库连接冲突问题
问题原因
文件型H2数据库同一时间仅允许一个进程独占数据库文件锁。你的Spring Boot应用运行时已占用该锁,导致IntelliJ IDEA无法建立新连接,从而触发报错。
解决方法
停止运行中的Spring Boot应用
直接在IDEA运行面板终止服务,待服务完全关闭后,再尝试连接H2数据库,这是最快的临时解决方式。启用H2服务器模式(长期解决方案)
修改Spring Boot配置文件(application.properties或application.yml),让H2以服务器模式启动,支持多客户端同时连接:若使用properties配置:
spring.datasource.url=jdbc:h2:tcp://localhost/./src/db/fleet spring.h2.console.enabled=true spring.h2.console.settings.web-allow-others=true若使用yml配置:
spring: datasource: url: jdbc:h2:tcp://localhost/./src/db/fleet h2: console: enabled: true settings: web-allow-others: true重启应用后,在IDEA数据库连接配置中,将URL改为
jdbc:h2:tcp://localhost/./src/db/fleet,输入与应用配置一致的用户名和密码即可正常连接。清理残留锁文件
若应用异常关闭,H2可能生成锁文件(格式为[数据库名].lock.db,如你的fleet.lock.db)。找到./src/db/目录下的该文件并删除,再尝试连接。结束多余进程
打开系统任务管理器(Windows)或活动监视器(Mac),查找残留的Java进程或H2相关进程,结束后重新尝试连接。
内容的提问来源于stack exchange,提问作者Yogi Lal Singh
相关产品推荐
相关产品推荐

