8

pyODBC从机器内连接到 Microsoft SQL Server 实例时遇到问题Ubuntu (12.10)

我回来的错误是:

pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data Source name not found, and no default driver specified (0) (SQLDriverConnect)')

用于 pyodbc 的连接字符串是:

self.corpus_cnxn = pyodbc.connect('DRIVER={FreeTDS};SERVER=UKEDN-06880;DATABASE=db1;UID=user;PWD=pass')

这似乎在 Windows 中的 pyODBC 上运行良好(只需将驱动程序更改为“SQL Server”而不是“FreeTDS”),当我尝试使用终端中的tsql 工具从 Ubuntu 机器连接时,它运行良好,使用以下命令:

tsql -S UKEDN-06880 -p 1433 -U user -P pass

我可以毫无问题地选择任何表,它似乎在 pyODBC 中不起作用。

任何帮助或建议将不胜感激,我的 Linux 技能非常薄弱并且完全被卡住了,尽管因为它可以从 tsql 工作,我感觉非常接近!

4

2 回答 2

9

看起来你已经让 freeTDS 正常工作,因为你可以使用 tsql。您是否尝试过连接 isql?

看看这个howto进行详细的演练。我认为您需要的部分是在页面下方设置 unixodbc。

于 2012-12-11T21:39:03.940 回答
2

第一个阶段 $ sudo apt-get install libmdbodbc1

像这样编辑文件 /etc/odbcinst.ini

[Microsoft Access Driver (*.mdb)]
Description = Microsoft Access Driver (*.mdb)
Driver      = /path/to/file/libmdbodbc.so
Setup       = /path/to/file/libtdsS.so
CPTimeout   = 
CPReuse     = 

和文件 /etc/odbc.ini

[Microsoft Access Driver (*.mdb)]
Description         = SQL Server
Driver              = Microsoft Access Driver (*.mdb)
Trace               = No
TraceFile           = /tmp/mssodbc.log
于 2015-02-05T12:32:19.290 回答