使用 sqlalchemy 连接到 mssql 数据库时遇到问题

Posted

技术标签:

【中文标题】使用 sqlalchemy 连接到 mssql 数据库时遇到问题【英文标题】:Having trouble connecting to an mssql database using sqlalchemy 【发布时间】:2019-10-01 16:14:11 【问题描述】:

我正在尝试连接到数据库并使用 sqlalchemy 将其插入。我已经使用 pyodbc 成功连接到数据库,但是 sqlalchemy 给我带来了麻烦。

我正在使用 sqlalchemy,以便可以使用 pd.to_sql 方法将数据帧插入数据库。

我检查了我的计算机上的 sql 版本和数据库是否匹配。我还将数据库添加到我电脑上的“odbc 数据源”中。

我还确保所有凭据都正确,并将版本添加到连接 url 中的 sql 驱动程序中。

import sqlalchemy

connect_url = sqlalchemy.engine.url.URL(
    'mssql+pyodbc',
    username='******',
    password='*********',
    host='******.database.windows.net',
    port='1433',
    database='*******',
    query=dict(driver='SQL+Server'))

from sqlalchemy import create_engine
engine = create_engine(connect_url)

engine.execute("SELECT * FROM ********")

错误:

"InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') (Background on this error at: http://sqlalche.me/e/rvf5)"

【问题讨论】:

【参考方案1】:

我使用query=dict(driver='SQL Server') 代替query=dict(driver='SQL+Server') 让您的代码正常工作。

【讨论】:

以上是关于使用 sqlalchemy 连接到 mssql 数据库时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

SQLAlchemy 无法连接到 mssql 数据库

使用 sqlalchemy.engine.url.URL 为 mssql+pyodbc 构建连接 URL

使用 sqlalchemy 连接到本地 postgresql

使用 SQLAlchemy 连接到 Oracle 数据库

远程连接到 MSSQL,使用 Windows 身份验证,JAVA

使用 SQLAlchemy 连接到 Amazon Aurora