2014-11-04 188 views
10

我使用H2进行数据库管理,这是我想要做的:如何让多个用户同时连接到我的H2数据库?

我想允许多个用户同时访问数据库。我读了一些关于“MULTI_THREADED = TRUE”,“LOCK_FILE = NO”和“AUTO_SERVER = TRUE”的内容。我还读过“LOCK_FILE = NO”可能很危险,因为它可能会损坏数据库。我绝对不会想要这个,所以我认为这是一个不好的方法。我还尝试在访问记录后立即关闭连接,无论是从中读取还是写入。到目前为止,似乎没有任何工作。如果数据库已连接到应用程序的单独实例(例如:在另一台计算机上),该应用程序不允许我读取或写入数据库。一旦我完全关闭了一台计算机上的应用程序,我就可以访问数据库记录。

如何让多个用户同时连接到H2数据库而不影响数据库的安全性?

+0

有趣的是,你得到的第一个答案正是我一直在说的...... – MadProgrammer 2014-11-04 20:25:50

+1

不完全是。你的回答都不直接或有帮助。 – Ryan 2014-11-04 21:40:08

+0

所以“使用服务器模式”是没有帮助的...羞耻 – MadProgrammer 2014-11-04 22:46:35

回答

10

它看起来像你在嵌入模式下使用H2,它一次只允许一个数据库连接。有关详细信息,请参阅文档connection modes

如果您需要支持多个连接(包括来自多个应用程序实例),则需要在server mode中启动H2,并使用适当的connection URLs来实现此模式。

+0

那么,有没有办法使用“AUTO_SERVER = TRUE”来做到这一点?这会使它混合? – Ryan 2014-11-04 21:38:58

+0

而且,如果我使自动服务器为真,是否允许多个连接? – Ryan 2014-11-04 21:39:37

+0

[自动混合模式](http://www.h2database.com/html/features.html#auto_mixed_mode)(即AUTO_SERVER = TRUE)允许多个并发连接到数据库。但是,我不会推荐它,因为第一次连接启动服务器的限制以及连接关闭时,服务器和所有远程连接因此关闭,并且挂起的事务将被回滚。 – Lolo 2014-11-05 06:29:58

相关问题