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

Databricks通过JDBC连接本地SQL Server(SSMS)失败排查求助

问题排查方案及代码修正

一、代码问题修正

你的代码中未定义driver变量,SQL Server JDBC驱动类名必须明确指定,添加以下代码即可:

driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"

二、疑问解答与核心问题排查

1. 用ipconfig的IPv4地址作为主机名是否正确?

  • 若你使用本地运行的Databricks Runtime(和你的PC在同一局域网):这个IP是有效的,但需确认SQL Server确实在监听该IP(通过SQL Server配置管理器查看TCP/IP设置,确保对应IP地址处于启用状态,且TCP端口设为1433)。
  • 若你使用云托管的Databricks集群(如AWS/Azure/GCP上的集群):这个内网IP完全无法被云集群访问——云集群处于公网或专属云网络,你的PC处于本地内网(NAT后),没有公网可达的地址,这是连接超时的核心原因。

2. 使用服务器名仍报错的原因

  • 云集群环境下:服务器名无法被云环境的DNS解析到你的本地PC,自然无法连接。
  • 本地环境下:可能是服务器名无法被Databricks的JVM解析,或者你的SQL Server是命名实例(而非默认实例),此时需指定实例名或对应端口(命名实例默认使用动态端口,需在SQL Server配置管理器中查看实际端口)。

三、分场景详细排查步骤

场景1:本地Databricks环境(同局域网)

  • 验证端口连通性:打开PowerShell执行Test-NetConnection 192.168.x.x -Port 1433,若返回tcp测试成功则端口可达,否则继续排查:
    1. 确认SQL Server服务已启动,且TCP/IP协议已启用(SQL Server配置管理器→SQL Server网络配置→实例名的协议→TCP/IP→启用,重启SQL Server服务);
    2. 检查防火墙:不仅要在Windows防火墙中添加1433端口的入站规则,还要确认第三方杀毒软件的防火墙未拦截该端口;
    3. 确认SQL Server允许远程连接:SSMS中右键服务器→属性→连接→勾选「允许远程连接到此服务器」;
    4. 确认sa账号状态:SSMS中展开「安全性→登录名→sa」,确保账号已启用,且服务器身份验证模式为「SQL Server和Windows身份验证模式」(服务器属性→安全性)。

场景2:云Databricks集群

本地PC的SQL Server无法直接被云集群访问,需通过以下方式解决:

  • 将SQL Server部署到与Databricks集群同VPC/网络的云服务器上;
  • 使用内网穿透工具将本地1433端口暴露为公网端口,代码中使用公网地址和映射后的端口连接;
  • 若使用对应云厂商服务,可尝试使用VPN或专线打通本地与云网络,实现内网访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 16:20:55