繁体   English   中英

通讯链路故障 JDBC Java

[英]Communications link failure JDBC Java

我知道已经回答了很多类似的问题,但我已经搜索了几乎所有这些问题,但无法找到解决我问题的方法。

我正在尝试使用以下代码连接到我的 SQL 数据库,但出现错误。 在我展示我的代码之前,我可以使用DBeaver连接到同一个数据库,并提供以下连接详细信息:

在此处输入图像描述

我正在尝试通过执行以下操作连接到数据库:

Connection connection = DriverManager
                    .getConnection("jdbc:mysql://localhost:1433/master", "sa", "MY_PASSWORD_HERE");

但是,此时,我的代码没有抛出任何错误,而是在大约 2 分钟后抛出了以下错误,我认为它基本上已经放弃并超时。

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

我不知道我做错了什么,因为我遵循了与无数在线教程相同的程序。 任何帮助表示赞赏。

作为参考,我正在使用 Maven 构建我的项目。 这是pom.xml的片段

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>8.0.19</version>
</dependency>

编辑:运行SELECT @@VERSION返回:

Microsoft SQL Server 2019 (RTM-CU4) (KB4548597) - 15.0.4033.1 (X64) 
    Mar 14 2020 16:10:35 
    Copyright (C) 2019 Microsoft Corporation
    Developer Edition (64-bit) on Linux (Ubuntu 18.04.4 LTS) <X64>

1 row(s) returned

Executed in 1 ms

问题是您的数据库是 SQL 服务器数据库,但您使用的是 JDBC 驱动程序和适合 MySQL 的连接字符串。 那是行不通的。

您需要更改 pom.xml 中的依赖项。 使用 SQL 服务器的 JDBC 驱动程序。 例如:

<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>mssql-jdbc</artifactId>
  <version>7.4.1.jre8</version>
</dependency>

然后,在您的 Java 代码中,您应该更改 JDBC URL。 它应该看起来像:

Connection connection = DriverManager
  .getConnection("jdbc:sqlserver://localhost:1433", "sa", "MY_PASSWORD_HERE");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM