无法使用 sqlalchemy 建立连接 SQL Server
Posted
技术标签:
【中文标题】无法使用 sqlalchemy 建立连接 SQL Server【英文标题】:Can't establish connection SQL Server using sqlalchemy 【发布时间】:2019-08-09 10:19:41 【问题描述】:我正在尝试使用 Python 从 Pandas 数据帧上传到 SQL Server 表,但我无法使用 sqlalchemy 成功创建连接。我知道我首先需要使用 create_engine() 创建一个引擎对象,然后使用 engine.connect() 创建一个连接对象,但是我在 create_engine() 中输入的任何字符串似乎都不起作用。我尝试了以下方法:
engine = create_engine('mssql+pyodbc://myServer/myDB')
conn = engine.connect()
和:
engine = create_engine('mssql+pyodbc://Server=myServer;Database=myDB;')
conn = engine.connect()
和:
engine = create_engine('mssql+pyodbc://Driver=SQL Server;Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()
但都导致以下错误:
InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
我也试过了:
engine = create_engine('mssql+pyodbc://Driver=SQL Server Native Client 11.0;Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()
导致以下错误:
DBAPIError: (pyodbc.Error) ('IM010', '[IM010] [Microsoft][ODBC Driver Manager] 数据源名称太长 (0) (SQLDriverConnect)')
虽然我可以像这样使用 pyodbc 成功连接:
conn = pyodbc.connect('DRIVER=SQL Server;Server=myServer;Database=myDB;Trusted_Connection=yes;')
我似乎无法为 sqlalchemy 做这项工作。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:解决办法:
engine = create_engine('mssql+pyodbc://ERRSTSDBP2/ActPri?driver=SQL+Server+Native+Client+11.0')
感谢 norbeq 让我一路走好!
【讨论】:
【参考方案2】:您可以尝试这样的连接:
engine = create_engine('mssql+pyodbc://user:password@host:port/myDB')
conn = engine.connect()
【讨论】:
我没有密码,我通过 Windows 身份验证连接。 “主机:端口”是什么意思?我尝试了以下,它没有工作: engine = create_engine('mssql+pyodbc://login@myServer/myDB') conn = engine.connect() 好的,引擎应该是:engine = create_engine('mssql+pyodbc://@myServer/myDB?trusted_connection=yes&driver=SQLServer+Native+Client+11.0')
仍然收到此错误:InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
我明白了!解决方案:engine = create_engine('mssql+pyodbc://myServer/myDB?driver=SQL+Server+Native+Client+11.0')以上是关于无法使用 sqlalchemy 建立连接 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章