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

Ubuntu环境下使用pyodbc连接远程SQL Server失败求助

Ubuntu连接MS SQL Server超时问题排查与解决

核心疑问解答

  • 是否需要指定端口号?
    是,必须明确指定SQL Server的TCP端口(默认1433)。Ubuntu环境下无法像Windows那样自动解析SQL Server的动态端口,连接字符串中需写成Server={IP/主机名},1433。

  • 是否应使用IP地址而非服务器名称?
    优先用SQL Server所在机器的静态IP代替主机名。Ubuntu下可能存在NetBIOS名称解析失败的问题,直接用IP能避免这类问题。

  • 是否是Windows身份验证导致的问题?
    这是最可能的原因!Trusted_Connection=yes依赖Windows域身份验证机制(Kerberos/NTLM),Linux环境默认没有配置对应的信任关系,用这个方式连接必然失败或超时。

具体解决步骤

1. 切换到SQL Server身份验证

在SQL Server中创建SQL登录账号并授权,然后修改连接字符串:

import pyodbc
# 替换为实际的IP、数据库名、SQL账号和密码
conn_str = f"Driver=ODBC Driver 17 for SQL Server;Server=192.168.x.x,1433;Database=YourDB;UID.localync inventory法 linking     gateMC Jud praresources_sequence(模版 sql_user;PWD=your_password;"
conn = pyodbc.connect(conn_str)

2. 验证网络连通性

在Ubuntu终端测试端口是否开放:

nc -zv 192.168.x.x 1433

返回succeeded!说明端口正常,否则检查:

  • Windows防火墙是否允许1433端口入站
  • SQL Server的TCP/IP配置是否启用并监听1433端口(在SQL Server配置管理器中查看)

3. 确认ODBC驱动安装正常

检查驱动是否存在:

odbcinst -q -d -n "ODBC Driver 17 for SQL Server"

若没有输出,重新安装驱动:

sudo apt update && sudo apt install msodbcsql17

4. 确保SQL Server启用混合身份验证

  • 打开SQL Server Management Studio,右键服务器 → 属性 → 安全性
  • 选择“SQL Server和Windows身份验证模式”
  • 重启SQL Server服务生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:15:24