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

JDBC连接Microsoft SQL Server失败求助:TCP/IP错误及Jar包选择

解决JDBC连接SQL Server的TCP/IP错误及Jar包选择问题

Jar包选择方案

根据你使用的Java版本选择对应的驱动Jar包:

  • 若项目基于Java 8:添加mssql-jdbc-12.4.2.jre8.jar到项目依赖
  • 若项目基于Java 11:添加mssql-jdbc-12.4.2.jre11.jar到项目依赖

注:javadoc和sources结尾的包是文档和源码包,仅用于开发时查阅,无需加入运行依赖。

TCP/IP连接错误的排查与修复

1. 修正连接字符串

你的连接字符串存在参数拼写错误,instance应改为instanceName,针对SQL Server Express命名实例,正确的连接格式示例:

// 使用实例名
String con = "jdbc:sqlserver://<主机名>;instanceName=SQLEXPRESS;databaseName=DB;integratedSecurity=true";
// 或指定端口(需先确认实例监听端口)
String con = "jdbc:sqlserver://<主机名>:1433;databaseName=DB;integratedSecurity=true";

2. 检查SQL Server网络配置

  • 打开SQL Server配置管理器,定位到SQL Server网络配置 > SQLEXPRESS的协议,确保TCP/IP协议已启用。
  • 双击TCP/IP进入属性,切换到IP地址选项卡:
    • 找到IPAll区域,确认TCP端口设置为1433(默认实例);若为动态端口,需记录端口号并在连接字符串中指定。
    • 确保各IP地址的启用属性设置为是。
  • 重启SQL Server SQLEXPRESS服务,使配置生效。

3. 验证防火墙设置

  • 检查主机防火墙是否允许1433端口(或实例实际监听的端口)的TCP入站连接,必要时添加规则放行。
  • 本地测试可临时关闭防火墙,确认是否为防火墙拦截导致的问题。

4. 确认服务状态

打开Windows服务管理器,确保SQL Server (SQLEXPRESS)服务处于运行状态。


附:你的错误信息与代码

错误栈

The TCP/IP connection to the host <Instance name>, port 1433 has failed. Error: "<intance name. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:231)
    at com.microsoft.sqlserver.jdbc.SQLServerException.convertConnectExceptionToSQLServerException(SQLServerException.java:282)
    at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2578)
    at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:719)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3523)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:3172)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:3014)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1836)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1246)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:252)
    at JDBC.main(JDBC.java:9)

你的代码

import java.sql.*;

import java.*;

class JDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String con = "jdbc:sqlserver://<instancename>;instance=SQLEXPRESS;databaseName=DB;integratedSecurity=true";
        Connection conn = DriverManager.getConnection(con);
        Statement stmt = conn.createStatement();
        String query = "SELECT *FROM STUDENT";
        ResultSet rs = stmt.executeQuery(query);
        while(rs.next()) {
            System.out.println("done");
        }
        rs.close();
        stmt.close();
        conn.close();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:24:55