从 Ubuntu Server 连接到 MS SQL Server

从 Ubuntu Server 连接到 MS SQL Server

使用 Ubuntu 10.04 LTS,我尝试通过 Python 脚本连接到另一台机器上的 MS SQL Server。我需要遵循哪些步骤才能做到这一点?现在,我正在尝试使用 pyodbc 模块,但每当我尝试连接时,我都会收到以下错误:

未找到数据源名称,且未指定默认驱动程序 (0)(SQLDriverConnectW)

因此我查看了空的 odbvcinst.ini 文件,添加了一个条目,现在当我使用我在那里定义的其中一个项目时,出现以下错误:

SQL_HANDLE_HENV 上的驱动程序 SQLAllocHandle 失败 (0)(SQLDriverConnectW)

我已经安装了:unixodb unixodbc-dev freetds-dev freetds-bin。我将其放在 SF 上而不是 SO 上,因为我认为这是服务器配置问题。我应该使用哪个驱动程序以及如何在哪个文件中引用它,等等?(我对 Ubuntu 还很陌生)

答案1

您在文件中设置了数据源吗/etc/freetds.conf

该条目看起来应类似于:

# A typical Microsoft server
[egServer70]
        host = ntmachine.domain.com
        port = 1433
        tds version = 7.0

(虽然在使用 MS SQL Server 时我倾向于使用 tds 版本 = 8.0,而且它运行良好)

编辑:(我将把我的回答放在这里以便我可以对其进行编码格式化)

您的 /etc/odbcinst.ini 应如下所示:

[MSSQL]
Description = FreeTDS
Driver = /usr/lib/libtdsodbc.so 
Setup = /usr/lib/libtdsS.so
CPTimeout =
CPReuse =

(确保驱动程序路径正确。有时是 /usr/lib/odbc/)

那么 Python 字符串看起来应该是这样的:

import pyodbc
connection = pyodbc.connect("DRIVER={MSSQL};SERVER=yourserver.yourdomain.com;UID=username;PWD=password;DATABASE=databasename")

相关内容