我正在尝试使用来自Java应用程序的H2数据库。
我通过H2控制台创建了数据库及其表,然后尝试使用
Connection con = DriverManager.getConnection("jdbc:h2:~/dbname", "username", "password");
但是,我收到以下错误:
线程“主”org.h2.jdbc.JdbcSQLException:数据库中的异常可能已经在使用:“被另一个进程锁定”。可能的解决方案:关闭所有其他连接;使用服务器模式90020-161
我试图删除dbname.lock.db
文件,但它是自动重新创建的。
我如何解锁数据库以使用我的Java程序?
发布于 2016-08-17 00:23:56
我在一个web应用程序中运行ORMLite时遇到了类似的问题。最初,我在url中使用服务器模式的语法被困住了。上面的答案对此有所帮助。然后,我遇到了类似的用户/密码错误,这更容易理解。我不需要关闭任何东西或者删除任何文件。以下代码起作用:
protected ConnectionSource getConnectionSource() throws SQLException {
String databaseUrl = "jdbc:h2:tcp://localhost/~/test";
return new JdbcConnectionSource(databaseUrl,"sa","sa");
}
若要在通配符上的服务器模式下使用H2,我在standalone.xml中修改了connection-url。
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool- name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:tcp://localhost/~/test</connection-url>
…
</datasource>
https://stackoverflow.com/questions/8158969
复制相似问题