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

时间:2019-10-15 16:40:16

标签: java jdbc database-connection h2

我正在尝试使用Java连接到在同一台计算机上启动的H2 Server。我以混合模式启动了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]

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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