You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JDBC连接SQL Server 2022出现Connection reset报错如何排查解决

SQL Server 连接报 Connection reset 问题修复方案

已定位的配置冲突

  • pom.xml 中 Java 版本配置与实际运行环境不匹配:当前运行环境为 JDK 17,但 pom 内<java.version>配置为1.8,会导致 Maven 编译、依赖适配阶段出现字节码版本兼容问题,触发连接阶段底层 Socket 重置。
  • 驱动与TLS协议适配缺陷:当前使用的mssql-jdbc 10.2.1.jre17版本对接 SQL Server 2022 时,默认启用的TLS 1.3加密握手会和Windows环境下SQL Server默认的TLS配置冲突,握手阶段直接被服务端重置连接,是该报错的最高频诱因。
  • 命名实例连接未明确端口:连接串使用LAPTOP-BHJGHRUA\SQL2022命名实例写法但未指定TCP端口,若SQL Server Browser服务未正常运行,客户端会解析到错误端口发起连接,直接被目标端重置。

分步修复操作

  1. 修正pom.xml版本配置
    将properties节点下的Java版本调整为和实际运行环境一致的17,修改后在IDEA中右键pom.xml选择Maven -> Reload project 重载依赖:
<properties>
    <java.version>17</java.version>
</properties>
  1. 调整JDBC连接串参数
    在连接串中强制指定兼容的TLS版本,补充端口配置(若后续1433端口连接失败,可到SQL Server配置管理器中查看对应实例的TCP动态端口替换即可):
String connectionUrl =
        "jdbc:sqlserver://LAPTOP-BHJGHRUA\\SQL2022:1433;"
                + "database=customer;"
                + "user=username;"
                + "password=123;"
                + "encrypt=true;"
                + "trustServerCertificate=true;"
                + "sslProtocol=TLSv1.2;"
                + "loginTimeout=30;";
  1. 本地服务与协议校验
  • 打开系统服务面板,确认SQL Server (SQL2022)、SQL Server Browser两个服务处于运行状态
  • 打开SQL Server配置管理器,找到SQL2022实例对应的TCP/IP协议,确认状态为已启用,修改协议配置后需要重启SQL Server服务生效。
  1. 驱动版本兼容兜底
    如果以上操作完成后仍报错,将mssql-jdbc驱动升级到对JDK17、SQL Server 2022适配更完善的12.4.0.jre17版本,替换pom中原有依赖即可:
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>12.4.0.jre17</version>
</dependency>

所有配置修改完成后,终止之前的运行进程,重新执行connection类的main方法即可验证连接,正常情况下控制台会打印connected。

内容的提问来源于stack exchange,提问作者sunShine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:51:18