2014-11-04 193 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

相關問題