java - H2 数据库自动服务器模式 : Accessing through web console remotely

标签 java scala h2

我是H2 数据库 的新手。作为 PoC 的一部分,我使用 H2 数据库(版本:1.4.187)来模拟 MS SQL Server 数据库。我有一个应用程序,比如 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 机器上运行这两个应用程序,我可以使用我机器上的网络控制台监控数据。这种方法不可能吗? 我该如何解决这个问题?

或者我需要使用服务器模式并显式启动 h2 服务器吗?任何帮助将不胜感激。

最佳答案

为了保护,H2数据库默认关闭远程连接。要启用对 TCP 服务器的远程访问,您需要使用选项 -tcpAllowOthers 或其他标志 -webAllowOthers-pgAllowOthers 启动 TCP 服务器> .

要同时启动 Web 控制台服务器(H2 控制台工具)和启用了远程连接的 TCP 服务器,您必须使用类似下面的内容

java -jar /path/to/h2.jar -web -webAllowOthers -tcp -tcpAllowOthers -browser

更多信息可以在 docs here 中找到和控制台设置可以配置from here

关于java - H2 数据库自动服务器模式 : Accessing through web console remotely,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36310443/

相关文章:

scala - 我怎样才能使这个方法更具可扩展性

sql - 如何替换所有外键?

java - 我的 H2 数据库文件在哪里?

java - Android 振动已弃用。如何在 Android>= API 26 中使用 VibrationEffect?

java - 在Java中动态分配另一个变量的变量值

java - 从 eclipse 项目中删除 gradle nature

scala - 使用 spark-cassandra 连接器的 Cassandra 插入性能

斯卡拉炸弹? (就像一个 zipper 炸弹)

spring-boot - h2-console 不显示

java - 客户端通过服务器与特定客户端通信