gpt4 book ai didi

python - SQLAlchemy 无法连接到 mssql 数据库

转载 作者:IT老高 更新时间:2023-10-28 22:22:17 30 4
gpt4 key购买 nike

这是我的简单测试脚本。只是尝试做一个基本的选择语句。在教程中找到了基本位。

from sqlalchemy import *

db = create_engine('mssql+pyodbc://user:pass@ip_address/database_name')

db.echo = True
metadata = MetaData(db)

users = Table('member', metadata, autoload=True)

def run(stmt):
rs = stmt.execute()
for row in rs:
print row

s = users.select(users.c.fname == 'Bill')
run(s)

经过一个小时的搜索并尝试了一些解决方案,我并没有比刚开始时更接近解决它。希望我只是在某个地方犯了一个简单的错误,但我找不到它......

这是我遇到的错误

sqlalchemy.exc.DBAPIError: (Error) ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)') None None

任何帮助将不胜感激!

最佳答案

如果未在 URL 中指定,mssql+pyodbc 方言的默认驱动程序将是“SQL Server”[1]。这意味着您需要在/etc/unixODBC/odbcinst.ini 中有一个类似这样的部分:

[SQL Server]
Driver=/path/to/library.so

它在 Windows 上“自动”运行,因为如果您打开 Administrator Tools -> Data Sources (ODBC),您很可能会找到一个名为“SQL Server "在驱动程序选项卡下。

在 Linux 上,您可以使用 FreeTDS 驱动程序,也可以使用 Microsoft 的官方驱动程序(我推荐这个)。

安装驱动后,你应该在/etc/unixODBC/odbcinst.ini 中有这样的东西:

[FreeTDS]
Driver=/usr/lib/libtdsodbc.so
Threading=1

[ODBC Driver 11 for SQL Server]
Description=Microsoft ODBC Driver 11 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0
Threading=1
UsageCount=1

然后,您只需在 URL 中添加一个 driver 查询字符串参数,其值与部分名称匹配。

带有 FreeTDS 的示例 URL:

mssql+pyodbc://user:pass@ip_address/database_name?driver=FreeTDS

带有官方驱动程序的示例 URL:

mssql+pyodbc://user:pass@ip_address/database_name?driver=ODBC+Driver+11+for+SQL+Server

[1] https://bitbucket.org/sqlalchemy/sqlalchemy/src/aa3a8f016f3e4396d125b18b0510abdf72aa8af2/lib/sqlalchemy/dialects/mssql/pyodbc.py?at=default#cl-236

关于python - SQLAlchemy 无法连接到 mssql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626467/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com