H2数据库错误:数据库可能已在使用中:“被另一个进程锁定”
我正在尝试从Java应用程序使用H2数据库。
我通过H2控制台创建了数据库及其表,然后尝试使用
Connection con = DriverManager.getConnection("jdbc:h2:~/dbname", "username", "password");
但是,我收到以下错误:
线程“主”中的异常org.h2.jdbc.JdbcSQLException:数据库可能已在使用中:“已被另一个进程锁定”。可能的解决方案:关闭所有其他连接;使用服务器模式[90020-161]
我试图删除该dbname.lock.db
文件,但会自动重新创建。
如何从Java程序解锁数据库以使用它?
回答:
H2仍在运行(我可以保证)。您需要将TCP连接用于多个用户,例如->
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/C:\Database\Data\production;"/>
要么
DriverManager.getConnection("jdbc:h2:tcp://localhost/server~/dbname","username","password");
这也意味着您需要以TCP模式启动服务器。老实说,在文档中它非常简单。
强制终止该进程(对于Windows为javaw.exe),并确保关闭了可能已启动该进程的所有应用程序。您有一个活动锁。
以上是 H2数据库错误:数据库可能已在使用中:“被另一个进程锁定” 的全部内容, 来源链接: utcz.com/qa/425779.html