我正在尝试以服务器模式启动H2,以便从另一台计算机连接应用程序。但无论我多么努力,我都没有成功。
我看到了文档,并从命令行启动服务器:
java -cp h2-2.1.214.jar org.h2.tools.Server -tcpAllowOthers
输出:
TCP server running at tcp://127.0.1.1:9092 (others can connect)
PG server running at pg://127.0.1.1:5435 (only local connections)
Web Console server running at https://127.0.1.1:8082 (others can connect)
现在从另一台电脑,据我所知,我必须以以下方式执行连接:
jdbc:h2:tcp://[server][:port]/[path]/[databaseName]
那么它应该是:
jdbc:h2:tcp://127.0.1.1:9092/home/mateo/database
但我读到127.0.0.1.1只在本地工作。我还注意到,在我看到的例子中,当我打开H2控制台时,机器的ip出现了,也就是说:192.168.X.
我做错了什么?
(更新(
我目前正在使用Linux。我已经从Windows启动了服务器,并按照上面的步骤成功地从Linux连接了它。但是,我仍然不明白为什么它在Linux中不起作用,在Windows中,它用机器的IP地址加载服务器。这让我觉得我必须为Linux做一些额外的配置。
运行的服务器
您需要将JDBC URL中的本地IP地址替换为服务器的真实非本地IP地址(例如jdbc:h2:tcp://127.0.1.1:9092/***
->jdbc:h2:tcp://192.168.1.4:9092/***
(。H2监听主机的所有网络接口,"runnig at…"消息中报告的地址并不重要。
如果您的内部网络中有端口8082和9092,您可能还需要保护它们免受来自不受信任系统的连接,以及免受来自外部网络的连接(确保您的路由器或您拥有的任何东西不会将连接重定向到带有数据库服务器的主机(。