如何在没有 PG 服务器和 Web 控制台的情况下启动 H2 数据库命令行?

How to start H2 database command line without PG server and Web Console?

我在 AWS EC2 机器上有 H2 数据库 v1.4.199,我想通过命令行以 TCP 模式启动,但看起来默认情况下 PG 服务器和 Web 控制台也会启动,但我没有这样做'不想。

我正在使用一个非常基本的命令来设置端口。这是命令和输出:

$ java -cp h2*.jar org.h2.tools.Server -tcpPort 9092
TCP server running at tcp://10.1.64.202:9092 (only local connections)
PG server running at pg://10.1.64.202:5435 (only local connections)
Web Console server running at http://10.1.64.202:8082 (others can connect)
Failed to start a browser to open the URL http://10.1.64.202:8082: Browser detection failed, and java property 'h2.browser' and environment variable BROWSER are not set to a browser executable.

您可以看到 PG 服务器和控制台服务器已启动,但我认为 PG 服务器和 Web 控制台是您必须显式启用的东西?我也 想要外部连接到这个 H2(我的 Java 应用程序在同一个 EC2 上),所以看到控制台配置为“其他人可以连接”输出有点令人担忧。

启动 H2 以使其更受限制和更安全的正确方法是什么?

编辑:有关更多上下文,本地主机上的 Java 应用程序将使用此代码连接:

    String url = "jdbc:h2:tcp://localhost:9092/" + filePath + ";MODE=MYSQL;AUTO_RECONNECT=TRUE;DB_CLOSE_ON_EXIT=FALSE";

    return DataSourceBuilder.create()
        .username("sa")
        .url(url)
        .driverClassName(org.h2.Driver.class.getName()).build();

Java 应用程序连接正常,但它不需要 PG 服务器和 Web 控制台即可运行。

服务器的帮助选项可能会提供一些指导:

 java -cp h2.jar org.h2.tools.Server -?

输出包括:

Starts the H2 Console (web-) server, TCP, and PG server.
Usage: java org.h2.tools.Server <options>
When running without options, -tcp, -web, -browser and -pg are started.
…

解决方案是显式启动 TCP 服务器:

java -cp h2.jar org.h2.tools.Server -tcp -tcpPort 9092