缘起
因为客户要求在应用上部署 mssql server 2008,而我们习惯了开发 Linux 下的服务器程序,所以就有了在 linux 下用 python 连接 mssql server 2008 的需求。这个需求非常折腾人,我们花了许多时间在上面,仍然没有搞定。后来是请了 python-cn 列表的 vcc 出手,通过 ssh 直接上机操作才搞定的;相信以后搞不定的人还会不少,所以就把其中的经验写出来,方便后来者,也方便自己日后发布应用程序时能够有一个指导性的文档。
写作本文时我们用的实验机器安装的是 ubuntu 8.04,使用其它 linux 发行版的朋友请相应地更改 shell 命令。
安装unixODBC
unixODBC 是 linux 下的 ODBC 驱动管理器,官网:http://unixodbc.org。先确保你已经装上了它。如果你在 ubuntu/debian 下,直接执行:
sudo apt-get install unixODBC unixODBC-bin 就可以把 unixODBC 装上了,附带装上了图形化的 ODBC 管理器 ODBCConfig,它的样子大概是这样的: 如果你确定会在命令行下工作,就不安装 unicODBC-bin 也可以。而且后文的相关操作也是通过命令行来完成的,不会使用 ODBCConfig,提到这个只为方便 GUI 爱好者。 安装Freetds Freetds 是应用最为广泛的 Linux 下的 ODBC 驱动,官网:http://www.freetds.org/。因为我们用的版本是 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] 139 host = 192.168.18.4 140 port = 1433 141 tds 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 无疑,这一步是最容易的了。先到这里(http://code.google.com/p/pyodbc/downloads/list)下载 pyodbc 源码包,然后解压到相应的目录,再执行:
sudo python setup.py build
sudo python setup.py install
即可。 最后仍然是测试,可以参考http://code.google.com/p/pyodbc/wiki/Examples的代码。 参考资料 CentOs下php连mssql并配置unixODBC http://rickyfang.blog.51cto.com/1213/125837 PyODBC, UnixODBC, FreeTDS – config http://203.208.39.99/search?q=cache:a5KR0lOOYaYJ:kipb7.wordpress.com/2008/06/12/pyodbc-unixodbc-freetds-config/+pyodbc+inurl:kipb7&hl=zh-CN&ct=clnk&cd=1&gl=cn&client=firefox-a&st_usg=ALhdy293zSnO8RbxkRswuT73jHl3mg25_Q unixODBC 教學 http://ycfunet.blogspot.com/2008/04/unixodbc.html “有”情社区 python-cn http://groups.google.com/group/python-cn
sudo apt-get install unixODBC unixODBC-bin 就可以把 unixODBC 装上了,附带装上了图形化的 ODBC 管理器 ODBCConfig,它的样子大概是这样的: 如果你确定会在命令行下工作,就不安装 unicODBC-bin 也可以。而且后文的相关操作也是通过命令行来完成的,不会使用 ODBCConfig,提到这个只为方便 GUI 爱好者。 安装Freetds Freetds 是应用最为广泛的 Linux 下的 ODBC 驱动,官网:http://www.freetds.org/。因为我们用的版本是 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] 139 host = 192.168.18.4 140 port = 1433 141 tds 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 无疑,这一步是最容易的了。先到这里(http://code.google.com/p/pyodbc/downloads/list)下载 pyodbc 源码包,然后解压到相应的目录,再执行:
sudo python setup.py build
sudo python setup.py install
即可。 最后仍然是测试,可以参考http://code.google.com/p/pyodbc/wiki/Examples的代码。 参考资料 CentOs下php连mssql并配置unixODBC http://rickyfang.blog.51cto.com/1213/125837 PyODBC, UnixODBC, FreeTDS – config http://203.208.39.99/search?q=cache:a5KR0lOOYaYJ:kipb7.wordpress.com/2008/06/12/pyodbc-unixodbc-freetds-config/+pyodbc+inurl:kipb7&hl=zh-CN&ct=clnk&cd=1&gl=cn&client=firefox-a&st_usg=ALhdy293zSnO8RbxkRswuT73jHl3mg25_Q unixODBC 教學 http://ycfunet.blogspot.com/2008/04/unixodbc.html “有”情社区 python-cn http://groups.google.com/group/python-cn
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“Linux 下用 Python 连接 MSSql Server 2008”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]