求助:使用SQLAlchemy通过可信连接连接SQL Server失败
解决SQLAlchemy可信连接SQL Server的错误问题
你的连接字符串格式错误,这是触发ODBC驱动报错的核心原因,以下是具体修正方案:
错误根源
你在连接字符串中用两个问号分隔参数,而ODBC连接字符串的参数分隔符应为**&**。原字符串里driver={SQL Server}?TrustedConnection=yes的第二个问号会被驱动识别为无效属性,直接引发报错。
修正后的代码
方案1:修正连接字符串格式
import sqlalchemy as sa import pandas as pd # 使用&分隔参数,同时推荐用高版本ODBC驱动 engine = sa.create_engine("mssql+pyodbc://REPORTING/REPORTING_System?driver={ODBC Driver 17 for SQL Server}&TrustedConnection=yes") view = "SELECT Date From Table" df = pd.read_sql_query(view, engine)
方案2:用URL对象构建连接(更易维护)
如果担心字符串拼接出错,可通过SQLAlchemy的URL对象构建连接,彻底避免格式问题:
import sqlalchemy as sa import pandas as pd connection_url = sa.engine.URL.create( "mssql+pyodbc", host="REPORTING", database="REPORTING_System", query={ "driver": "ODBC Driver 17 for SQL Server", "TrustedConnection": "yes" } ) engine = sa.create_engine(connection_url) view = "SELECT Date From Table" df = pd.read_sql_query(view, engine)
额外注意事项
- 确保系统已安装ODBC Driver 17 for SQL Server(或更高版本),旧版
{SQL Server}驱动兼容性较差。 - 运行代码的Windows用户需具备目标SQL Server实例及数据库的访问权限(可信连接依赖Windows身份验证)。
内容的提问来源于stack exchange,提问作者dli193
相关产品推荐
相关产品推荐

