linux python2.7 mssqlserver_Linux 下用 Python 连接 MSSql Server 2008

Linux下用Python连接MSSql Server 2008

Keywords:Linux、python、pyodbc、freetds、unixODBC、tsql、isql、mssql、mssql server、mssql server 2008

缘起

因为客户要求在应用上部署mssql server 2008,而我们习惯了开发Linux下的服务器程序,所以就有了在linux下用python连接mssql server 2008的需求。这个需求非常折腾人,我们花了许多时间在上面,仍然没有搞定。后来是请了python-cn列表的vcc出手,通过ssh直接上机操作才搞定的;相信以后搞不定的人还会不少,所以就把其中的经验写出来,方便后来者,也方便自己日后发布应用程序时能够有一个指导性的文档。

写作本文时我们用的实验机器安装的是ubuntu 8.04,使用其它linux发行版的朋友请相应地更改shell命令。

安装unixODBC

unixODBC是linux下的ODBC驱动管理器,官网:。先确保你已经装上了它。如果你在ubuntu/debian下,直接执行:sudo apt-get install unixODBC unixODBC-bin

就可以把unixODBC装上了,附带装上了图形化的ODBC管理器ODBCConfig,它的样子大概是这样的:

如果你确定会在命令行下工作,就不安装unicODBC-bin也可以。而且后文的相关操作也是通过命令行来完成的,不会使用ODBCConfig,提到这个只为方便GUI爱好者。

安装Freetds

Freetds是应用最为广泛的Linux下的ODBC驱动,官网:。因为我们用的版本是0.82版,而ubuntu的更新源里仍然是0.63版本,我这边建议你执行sudo apt-get remove freetds freetds-dev来把以前装的版本删除掉,然后下载0.82或更新的版本。

编译freetds的时候一定要注意configure的参数,我估计当时我编译的时候参数没有设置正确,所以一直没有能够连上mssql server。Vcc分享了他的编译参数,如下:./configure /

--prefix=/etc/freetds /

--with-tdsver=8.0 --enable-msdblib /

--enable-dbmfix /

--with-gnu-ld /

--enable-shared /

--enable-static

执行configure之后再sudo make,sudo make install,耐心等候安装完成就可以了。

安装完成后,该用tsql测试一下,测试的方式是执行:tsql–H mssql-server-ip–U username–P password

出现1>提示符就是成功啦。

配置freetds

Freetds的配置文件位置在/etc/freetds/freetds.conf里,打开后在最后面增加如下一个section:

138 [db4]

139host = 192.168.18.4

140port = 1433

141tds version = 7.0

其中host是mssql server的地址,tds version是指定使用哪个tds版本,据vcc说,用7.0的兼容性比较好,我小试了一下,8.0也是可以的。

完成以后,应该用tsql测试一下,测试的方式是执行:tsql–S db4–U username–P password

看到1>标识符就是成功啦。

配置ODBC驱动

接下来我们要配置一个ODBC驱动,驱动存储在/etc/odbcinst.ini文件中,用vi打开后,写入下面的内容:

1 [SQL Server]

2 Description= MS-SQLServer

3 Driver= /usr/local/freetds/lib/libtdsodbc.so

4 Driver64= /usr/local/freetds/lib/libtdsodbc.so

5 Setup= /usr/lib/odbc/libtdsS.so

6 Setup64= /usr/lib/odbc/libtdsS.so

7 UsageCount= 1

8 CPTimeout=

9 CPReuse=

10 FileUsage= 1

这样我们就配置好一个名为SQL Server的驱动了。如果你的odbcinst.ini之前是空的,可能还需要这样一个section:

12 [ODBC]

13 Trace= Yes

14 TraceFile= /tmp/sql.log

15 ForceTrace= No

16 Pooling= Yes

其中Trace是指定要不要写log,写log会降低程序性能,发布版记得把Trace的值改为No。

配置ODBC数据源

现在该到配置数据源的时候了,ODBC数据源存放在/etc/odbc.ini文件中,我们用vi打开,然后加入如下内容:

8 [mssql2k8]

9 Description= link to 18.4

10 Driver= SQL Server

12 Servername = db4

14 Database= tempdb

可以看到这个名为mssql2k8的数据中,使用了前面在odbcinst.ini中定义的驱动“SQL Server”,在freetds.conf中定义的db4数据库服务器,前面的工作必不可少哇。

配置完成后可以使用isql测试一下,测试方式是执行:isql mssql2k8 username password

在isql中你可以执行相应的sql语句,比如select * from table,看看是不是真的已经能够从mssql server 2008中取得数据了。

安装pyodbc

无疑,这一步是最容易的了。先到这里()下载pyodbc源码包,然后解压到相应的目录,再执行:sudo python setup.py build

sudo python setup.py install即可。

参考资料

CentOs下php连mssql并配置unixODBC

PyODBC, UnixODBC, FreeTDS–config

unixODBC教學

“有”情社区

python-cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值