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

如何解决SQL Server JDBC连接超时错误:主机实例连接失败

解决Java连接SQL Server超时及相关错误的步骤

一、排查服务器端配置问题

  • 确保SQL Server Browser服务处于运行状态
    命名实例(如SQLEXPRESS)依赖SQL Server Browser服务通过UDP 1434端口返回实例对应的TCP端口。操作步骤:

    1. 按下Win+R,输入services.msc回车打开「服务」面板
    2. 找到「SQL Server Browser」服务,将启动类型设为「自动」,并点击「启动」按钮。
  • 验证实例名称正确性
    确认SQL Server实例名确实为SQLEXPRESS:
    打开「SQL Server配置管理器」,展开「SQL Server服务」,查看服务名称是否为「SQL Server (SQLEXPRESS)」,括号内的内容即为实例名。

  • 配置防火墙允许必要端口流量

    1. 添加防火墙规则,允许UDP 1434端口的入站连接(供SQL Server Browser服务使用)
    2. 若后续指定实例的静态TCP端口,需同时添加该TCP端口的入站允许规则(可在SQL Server配置管理器中查看实例的TCP端口)

二、优化JDBC连接字符串

  • 直接指定TCP端口(推荐)
    避免依赖UDP 1434端口,直接使用实例的TCP端口建立连接:

    1. 在SQL Server配置管理器中,展开「SQL Server网络配置」→「SQL Server (SQLEXPRESS)的协议」→「TCP/IP」→右键选择「属性」
    2. 切换到「IP地址」标签,找到「TCP端口」(若为动态端口,可设置固定值如14330)
    3. 修改连接字符串为:
      String connectionUrl = "jdbc:sqlserver://DESKTOP-4HE4VKM:14330;DatabaseName=payroll;integratedSecurity=true;encrypt=false;";
      
  • 检查Windows身份验证依赖
    使用integratedSecurity=true时,需确保对应版本的sqljdbc_auth.dll(32位/64位)放置在项目运行路径或系统环境变量PATH包含的目录中。

三、修复代码中的SQL语法错误

你的代码中SQL语句存在语法错误:select from EMPLOYEE缺少要查询的列,需修改为:

ResultSet rs = st.executeQuery("select EmpName from EMPLOYEE");

或查询所有列:

ResultSet rs = st.executeQuery("select * from EMPLOYEE");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:25:25