在Ubuntu上通过pyODBC连接到Microsoft SQL Server

时间:2012-11-21 11:31:27

标签: python sql-server linux ubuntu pyodbc

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

我要回的错误是:

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中正常工作(只需要将DRIVER更改为'SQL Server'而不是'FreeTDS'),当我尝试使用 tsql从Ubuntu机器连接时它工作正常 Tool来自终端,使用以下命令:

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

我可以选择任何没有问题的表,它似乎在pyODBC中没有用。

任何帮助或建议都会非常感激,我的Linux技能非常弱,而且完全卡住了,虽然因为它的工作原理是tsql,所以感觉非常接近!

2 个答案:

答案 0 :(得分:9)

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

请查看此howto以获取详细信息。我认为你需要的部分是在页面上设置unixodbc。

答案 1 :(得分: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