H2客户端无法连接到服务器

问题描述 投票:0回答:1

我正在尝试连接到使用Java在同一台计算机上启动的H2服务器。我以混合模式启动了H2服务器。连接到服务器时出现错误。

启动服务器的代码是:

Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpSSL").start();

连接到服务器的代码是:

Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:tcp://127.0.0.1/~/Data/test", "", "");

错误是:

连接断开:“意外状态352518912” [90067-197]

任何人都可以帮助我。我在这里停留了两天。

java database jdbc database-connection h2
1个回答
0
投票

您需要使用ssl协议而不是URL中的tcp,因为您在服务器上使用了加密的袜子。

"jdbc:h2:ssl://127.0.0.1/~/Data/test"

请注意,由于安全原因,默认情况下无法在最新版本的H2中远程创建数据库。您需要在服务器端使用本地URL(例如"jdbc:h2:~/Data/test")创建数据库,足以打开和关闭与数据库的连接。

此外,我希望空密码仅用于问题中的示例代码。如果您有一个数据库,该数据库的用户具有ADMIN特权(使用创建数据库的第一个连接的用户名和密码来创建该用户),并且密码为空或弱(或者如果您启用了远程数据库创建),那么任何人,可以连接到该端口的用户,将拥有对服务器进程的完全访问权限,并且该进程很可能已经与您具有对系统的相同访问权限,因此您可以有效地使用-tcpAllowOthers和此类密码创建一个远程安全漏洞。

© www.soinside.com 2019 - 2024. All rights reserved.