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

使用SQLAlchemy+pyodbc连接远程Microsoft SQL Server报错如何解决?

报错原因

异常的核心诱因是连接字符串中driver参数的格式错误:你额外给驱动名包裹了大括号和单引号,导致ODBC驱动管理器将包含符号的整段字符串{'ODBC Driver 17 for SQL Server'}连同后续拼接的连接参数当成了驱动文件路径去查找,自然无法匹配到系统中已安装的ODBC Driver 17 for SQL Server驱动。

解决方案

你可以选择以下任意一种方式修正连接字符串即可:

  • 方案1:直接调整URL格式的连接串,去掉driver参数的多余符号,将空格替换为URL编码的+
constr = "mssql+pyodbc://xxx:xxxxxxxx@xxx.xx.xx.xx:1433/Underlying?driver=ODBC+Driver+17+for+SQL+Server"
  • 方案2:通过编码拼接ODBC原生连接串,兼容性更强,可规避特殊字符解析问题
import pyodbc
import urllib.parse
from sqlalchemy import create_engine

if __name__ == "__main__":
    print(pyodbc.drivers())
    # 先构造标准ODBC连接串
    odbc_str = "DRIVER={ODBC Driver 17 for SQL Server};SERVER=xxx.xx.xx.xx,1433;DATABASE=Underlying;UID=xxx;PWD=xxxxxxxx"
    # 对连接串做URL编码后传入
    constr = f"mssql+pyodbc:///?odbc_connect={urllib.parse.quote_plus(odbc_str)}"
    engine = create_engine(constr)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:06:03