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

PySpark通过JDBC连接SQL Server时TCP/IP 1433端口连接失败求助

PySpark JDBC连接SQL Server报TCP/IP连接失败(Connection refused)的排查方案

针对你遇到的Py4JJavaError(核心为TCP/IP连接被拒绝),结合你已完成的防火墙规则添加、TCP/IP协议启用操作,按以下步骤逐一排查:

1. 确认SQL Server实例实际监听的端口

默认情况下SQL Server未必固定使用1433端口(尤其是Express版或命名实例):

  • 打开SQL Server配置管理器,展开「SQL Server网络配置」→ 对应实例的「协议」,右键点击「TCP/IP」→「属性」
  • 切换到「IP地址」标签,拉至最下方的「IPAll」区域:
    • 若「TCP动态端口」有数值,说明实例使用动态端口(如51234),而非1433
    • 若「TCP端口」有数值,该值即为固定监听端口
  • 查看SQL Server的ERRORLOG,找到包含Server is listening on的日志行,其中会明确显示实例监听的IP与端口

2. 验证端口的实际监听状态

通过Windows命令行确认端口是否被SQL Server进程占用:

netstat -ano | findstr "你的端口号"
  • 若输出无LISTENING状态记录,说明SQL Server未在该端口监听,直接替换JDBC URL中的端口为实际监听端口
  • 若有LISTENING记录,查看对应PID,打开任务管理器确认该PID对应的进程为sqlservr.exe

3. 检查SQL Server实例服务状态

打开服务管理器(运行services.msc):

  • 找到你的SQL Server实例服务(默认实例为「SQL Server (MSSQLSERVER)」,命名实例为「SQL Server (实例名)」)
  • 确认服务状态为「正在运行」,若未运行,右键启动服务

4. 调整JDBC URL的连接格式

根据实例类型修改URL:

  • 命名实例:无需指定端口,直接用实例名连接:
    jdbc_url = f"jdbc:sqlserver://{host}\INSTANCE_NAME;databaseName={database};integratedSecurity=true;"
    
  • 动态端口的默认实例:用实际查到的动态端口替换1433:
    jdbc_url = f"jdbc:sqlserver://{host}:动态端口号;databaseName={database};integratedSecurity=true;"
    
  • 尝试用127.0.0.1代替localhost,规避本地DNS解析问题:
    jdbc_url = f"jdbc:sqlserver://127.0.0.1:实际端口;databaseName={database};integratedSecurity=true;"
    

5. 排除Windows身份验证的干扰

暂时改用SQL Server身份验证测试,确认连接问题是否与身份验证相关:

jdbc_url = f"jdbc:sqlserver://{host}:实际端口;databaseName={database};user=你的SQL账号;password=你的密码;"

若能成功连接,再回头排查Windows身份验证配置:

  • 确认mssql-jdbc_auth-12.8.1.x64.dll路径正确,且与你的JDK版本匹配(代码中使用jre8,需对应64位JDK 8)
  • 确保spark.driver.extraJavaOptions中的java.library.path指向dll所在文件夹(而非dll文件本身),例如:
    .config("spark.driver.extraJavaOptions", "-Djava.library.path=C:/Users/~/sqljdbc_12.8/enu/auth/x64/")
    

6. 再次测试telnet连接

使用实际端口测试telnet:

telnet 127.0.0.1 实际端口

若仍失败,说明端口未对外开放,重新检查:

  • 防火墙入站规则是否覆盖实际端口
  • SQL Server的TCP/IP协议是否在所有IP地址上启用(在TCP/IP属性的「IP地址」标签中,确保每个IP的「已启用」为「是」)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:46:13