21

我正在尝试在 Mac 上使用 Pypyodbc 连接到 SQL Server,但出现以下错误:

pypyodbc.DatabaseError: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found")

我已经安装了 freeTDS 和 unixodbc

brew install unixodbc
brew install freetds

这是我的带有虚拟数据的连接字符串:

connection_String = "Driver=FreeTDS;Server=123.12.12.12;tds_version=7.2;Database=db_db;Uid=username:pwd=password:port=1433"
4

2 回答 2

13

检查您的 /etc/odbcinst.ini 或者它可能在 /etc/unixODBC/odbcinst.ini 下

在您的连接字符串中,您有类似“DRIVER=FreeTDS”的内容,该文件中需要有一个条目,如下所示。您可能需要更改驱动程序位置。

[FreeTDS]
Description             = FreeTDS unixODBC Driver
Driver          = /usr/lib64/libtdsodbc.so.0
Setup           = /usr/lib64/libtdsodbc.so.0
UsageCount              = 1
于 2016-02-10T20:32:15.393 回答
8

首先,您可以使用不需要配置 unixODBC 的pymssql ,这就是这里的问题。

要使用 FreeTDS 配置 unixODBC,请执行以下操作:http ://www.unixodbc.org/doc/FreeTDS.html

FreeTDS 附带了一个工具,tsql。用它来测试你的连接字符串。这是一个非常简单的工具,有点痛苦。:-/

最后,在 StackOverflow 中还有一个与其他问题类似的问题:如何配置 pyodbc 以使用 freeTDS 和 unixODBC 正确接受来自 SQL Server 的字符串?

于 2015-04-17T05:03:28.647 回答