Can';连接HSQL数据库管理器时,请不要从Java代码连接到HSQL数据库
当我打开并连接HSQL DB Manager(Swing)时,Java代码无法连接到数据库:Can';连接HSQL数据库管理器时,请不要从Java代码连接到HSQL数据库,java,sql,hsqldb,Java,Sql,Hsqldb,当我打开并连接HSQL DB Manager(Swing)时,Java代码无法连接到数据库: java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@cf53680[file =C:\somedb\db.lck ... 但一旦我从数据库管理器关闭到数据库的连接,Java代码就开始正常工作 这是什么?HSQLDB主要是一个嵌入式数据库引擎。这意味着,如果运行嵌入
java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@cf53680[file =C:\somedb\db.lck ...
但一旦我从数据库管理器关闭到数据库的连接,Java代码就开始正常工作
这是什么?HSQLDB主要是一个嵌入式数据库引擎。这意味着,如果运行嵌入式数据库,则只有一个进程(=JVM)可以使用该数据库。无法从其他进程进行连接
唯一的解决方法是在服务器模式下启动HSQLDB,HSQLDB在自己的进程(JVM)中运行,并接受来自其他进程的连接——基本上与Postgres或Oracle等“传统”数据库服务器的设置相同
有关如何在服务器模式下启动HSQLD的详细信息,请参见手册:
先删除.lck文件,然后使用SQLite数据库运行程序?如果是这样,您就不能有并发连接,请使用生产就绪的数据库,如MariaDB、MySQL、PostgreSQL等、、@Satya,删除锁不是一个选项。HSQL连接需要锁定数据库以防止任何其他访问。当数据库连接关闭,然后其他客户端可以连接时,锁文件将消失。使用生产就绪的数据库是解决方案亲爱的Satya,我在Google上读到过这一点。。但这并没有帮助:(谢谢分享知识@jamesc@GiorgiTsiklauri,我建议这是你的解决方案