通讯link失败JDBCJava
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
returns:
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 服务器数据库,但您使用的是适合 MySQL 的 JDBC 驱动程序和连接字符串。那是行不通的。
您需要更改 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");
我知道已经回答了很多类似的问题,但我几乎搜索了所有这些问题,但找不到解决我的问题的方法。
我正在尝试使用以下代码连接到我的 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
returns:
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 服务器数据库,但您使用的是适合 MySQL 的 JDBC 驱动程序和连接字符串。那是行不通的。
您需要更改 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");