【发布时间】:2016-07-18 13:14:27
【问题描述】:
我对@987654323@ 还很陌生。作为 PoC 的一部分,我使用 H2 数据库(版本:1.4.187)来模拟 MS SQL Server DB。我有一个应用程序,比如说 app1,它生成数据并保存到 H2 中。另一个应用程序 app2 需要从 H2 数据库中读取并处理它读取的数据。我正在尝试使用Auto Server mode,这样即使其中一个应用程序关闭,另一个应用程序也能够读取/写入数据库。
在阅读了多个示例后,我找到了如何构建 h2 url,如下所示:
jdbc:h2:~/datafactory;MODE=MSSQLServer;AUTO_SERVER=TRUE;
启用 tcp 和远程访问如下:
org.h2.tools.Server.createTcpServer("-tcpAllowOthers","-webAllowOthers").start()
有了这个,我可以写入数据库。现在,我想使用h2-web-console 应用程序读取数据。我可以从我的本地机器上做到这一点。但是,我无法理解如何从另一台机器远程连接到该数据库。
我的工厂是在 ubuntu 机器上运行这两个应用程序,我可以使用机器上的 Web 控制台监控数据。这种方法不可能吗? 我该如何解决这个问题?
或者我需要使用服务器模式并显式启动 h2 服务器吗?任何帮助将不胜感激。
【问题讨论】:
-
在 H@ 文档中发现以下行,不支持显式客户端/服务器连接(使用 jdbc:h2:tcp:// 或 ssl://)。内存数据库不支持此模式。。见Automatic Mixed Mode。也许这就是您无法连接到它的原因。似乎端口也是随机选择的。使用此功能时,默认情况下服务器使用任何空闲的 TCP 端口。可以使用
AUTO_SERVER_PORT手动设置端口。 -
虽然以下问题以 how-to-run-h2-database-in-server-mode 异常开头,但它似乎正在建立连接,因此它可以为您提供有关 URL 外观的提示。