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

Ubuntu环境下用pyodbc+SQLAlchemy连SQL Server遇登录超时问题

解决Ubuntu下pyodbc+SQLAlchemy连接SQL Server超时问题

可能的错误点及修复方案

1. 驱动名称的URL解析异常

你的连接字符串中驱动名称包含空格,直接拼接会导致URL解析出错。推荐使用odbc_connect传递完整ODBC参数的方式,避免解析问题:

from sqlalchemy import create_engine
import urllib.parse

drv = 'ODBC Driver 18 for SQL Server'
# 用大括号包裹驱动名,同时添加加密相关参数
odbc_params = urllib.parse.quote_plus(f'DRIVER={{{drv}}};SERVER={server_ip},1433;DATABASE={db_name};UID={user};PWD={passwd};Encrypt=yes;TrustServerCertificate=yes')
con_string = f'mssql+pyodbc:///?odbc_connect={odbc_params}'
con = create_engine(con_string)

2. 默认加密设置导致连接失败

ODBC Driver 18 for SQL Server默认强制加密连接,若你的SQL Server未配置可信证书,Ubuntu环境下会因证书验证失败触发超时。必须添加TrustServerCertificate=yes参数跳过证书验证,同时显式设置Encrypt=yes(若无需加密可设为Encrypt=no,但不推荐非安全网络环境使用)。

3. 网络连通性问题

  • 执行ping {server_ip}确认Ubuntu服务器能连通SQL Server主机
  • 用telnet {server_ip} 1433测试端口是否开放,若不通需在SQL Server主机开放1433端口,同时确保Ubuntu防火墙允许出站访问该端口
  • 检查SQL Server是否启用了TCP/IP协议(在SQL Server配置管理器中确认)

4. 认证方式配置错误

确保SQL Server已启用SQL Server身份认证(而非仅Windows认证),且你使用的用户名、密码拥有目标数据库的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:48:19