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

NetBeans中使用JDBC连接SQL Server失败的技术求助

排查NetBeans中JDBC连接SQL Server Express失败的问题

我来帮你搞定这个棘手的连接问题!结合你给出的错误信息、代码和服务器名称(从截图可知为MANUEL-PC\SQLEXPRESS),咱们从几个核心点逐一排查:

1. 确认SQL Server Express的监听端口是否为1433

SQL Server Express默认不会固定使用1433端口,它通常会分配动态端口。你可以这样检查:

  • 打开「SQL Server配置管理器」
  • 导航到「SQL Server网络配置」→「SQLEXPRESS的协议」→右键点击「TCP/IP」选择「属性」
  • 切换到「IP地址」标签,拉到最底部查看「IPAll」下的「TCP端口」(静态端口)或「TCP动态端口」
    • 如果是动态端口,你的JDBC URL不需要指定端口号,驱动会通过SQL Server Browser服务自动解析
    • 如果是静态端口1433,要确保这个端口确实被实例监听,且防火墙没有拦截

2. 修正JDBC URL的写法

根据你的服务器实例信息,调整URL格式:

  • 如果使用动态端口(推荐,避免端口冲突):
    private final String URL = "jdbc:sqlserver://MANUEL-PC\\SQLEXPRESS;databaseName=DLC_MotorDeBusqueda;integratedSecurity=true";
    
    注意这里去掉了:1433,让驱动自动通过SQL Server Browser获取端口
  • 如果确认是静态1433端口,保留端口但要确保实例确实监听该端口

3. 确保SQL Server Browser服务正在运行

当使用实例名(比如SQLEXPRESS)连接时,SQL Server Browser服务负责将实例名映射到对应的端口。你可以:

  • 打开「服务」(Win+R输入services.msc)
  • 找到「SQL Server Browser」,确保它处于「正在运行」状态,如果没启动,右键选择「启动」,并设置为「自动」启动

4. 处理Windows集成认证的依赖问题

你的URL中使用了integratedSecurity=true(Windows认证),这需要额外的依赖文件:

  • 从微软官网下载对应版本的SQL Server JDBC驱动,找到sqljdbc_auth.dll文件(注意区分32位和64位,要和你的JDK/JRE位数一致)
  • 将该文件复制到你的JRE安装目录的bin文件夹下(比如C:\Program Files\Java\jdk1.8.0_301\jre\bin)

5. 验证网络连通性

用命令行测试端口是否能通:

  • 打开PowerShell,执行:
    Test-NetConnection MANUEL-PC -Port 1433
    
    如果返回「TcpTestSucceeded: False」,说明要么端口没开,要么防火墙拦截,或者SQL Server没监听该端口

6. 检查SQL Server服务状态

确保「SQL Server (SQLEXPRESS)」服务正在运行:

  • 打开「服务」(services.msc),找到该服务,确认状态为「正在运行」,如果没启动就启动它

另外提个小细节:JDBC 4.0及以上版本(对应Java 6+)已经不需要手动调用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")了,驱动会自动注册,不过这不是导致连接失败的原因,只是个优化点。

你可以先按照上面的步骤逐一排查,尤其是端口和SQL Server Browser服务这两点,大概率能解决问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:08:11