国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

Linux 下用 Python 連接 MSSql Server 2008

2020-07-08 13:00:38
字體:
來源:轉載
供稿:網(wǎng)友
緣起
因為客戶要求在應用上部署 mssql server 2008,而我們習慣了開發(fā) Linux 下的服務器程序,所以就有了在 linux 下用 python 連接 mssql server 2008 的需求。這個需求非常折騰人,我們花了許多時間在上面,仍然沒有搞定。后來是請了 python-cn 列表的 vcc 出手,通過 ssh 直接上機操作才搞定的;相信以后搞不定的人還會不少,所以就把其中的經(jīng)驗寫出來,方便后來者,也方便自己日后發(fā)布應用程序時能夠有一個指導性的文檔。
寫作本文時我們用的實驗機器安裝的是 ubuntu 8.04,使用其它 linux 發(fā)行版的朋友請相應地更改 shell 命令。
安裝unixODBC
unixODBC linux 下的 ODBC 驅動管理器,官網(wǎng):http://unixodbc.org。先確保你已經(jīng)裝上了它。如果你在 ubuntu/debian 下,直接執(zhí)行:
sudo apt-get install unixODBC unixODBC-bin
就可以把 unixODBC 裝上了,附帶裝上了圖形化的 ODBC 管理器 ODBCConfig,它的樣子大概是這樣的:
 
如果你確定會在命令行下工作,就不安裝 unicODBC-bin 也可以。而且后文的相關操作也是通過命令行來完成的,不會使用 ODBCConfig,提到這個只為方便 GUI 愛好者。
安裝Freetds
Freetds 是應用最為廣泛的 Linux 下的 ODBC 驅動,官網(wǎng):http://www.freetds.org/。因為我們用的版本是 0.82 版,而 ubuntu 的更新源里仍然是 0.63 版本,我這邊建議你執(zhí)行 sudo apt-get remove freetds freetds-dev 來把以前裝的版本刪除掉,然后下載 0.82 或更新的版本。
編譯 freetds 的時候一定要注意 configure 的參數(shù),我估計當時我編譯的時候參數(shù)沒有設置正確,所以一直沒有能夠連上 mssql server。Vcc 分享了他的編譯參數(shù),如下:
./configure /
--prefix=/etc/freetds /
--with-tdsver=8.0 --enable-msdblib /
--enable-dbmfix /
--with-gnu-ld /
--enable-shared /
--enable-static
執(zhí)行 configure 之后再 sudo makesudo make install,耐心等候安裝完成就可以了。
安裝完成后,該用 tsql 測試一下,測試的方式是執(zhí)行:
tsql H mssql-server-ip U username P password
出現(xiàn) 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 版本,據(jù) vcc 說,用 7.0 的兼容性比較好,我小試了一下,8.0 也是可以的。
完成以后,應該用 tsql 測試一下,測試的方式是執(zhí)行:
tsql S db4 U username P password
看到 1> 標識符就是成功啦。
配置 ODBC 驅動
接下來我們要配置一個 ODBC 驅動,驅動存儲在 /etc/odbcinst.ini 文件中,用 vi 打開后,寫入下面的內(nèi)容:
 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 會降低程序性能,發(fā)布版記得把 Trace 的值改為 No
配置 ODBC 數(shù)據(jù)源
現(xiàn)在該到配置數(shù)據(jù)源的時候了,ODBC 數(shù)據(jù)源存放在 /etc/odbc.ini 文件中,我們用 vi 打開,然后加入如下內(nèi)容:
 8 [mssql2k8]
 9 Description     = link to 18.4
 10 Driver      = SQL Server
12 Servername = db4
14 Database        = tempdb
可以看到這個名為 mssql2k8 的數(shù)據(jù)中,使用了前面在 odbcinst.ini 中定義的驅動“SQL Server”,在 freetds.conf 中定義的 db4 數(shù)據(jù)庫服務器,前面的工作必不可少哇。
配置完成后可以使用 isql 測試一下,測試方式是執(zhí)行:
isql mssql2k8 username password
isql 中你可以執(zhí)行相應的 sql 語句,比如 select * from table,看看是不是真的已經(jīng)能夠從 mssql server 2008 中取得數(shù)據(jù)了。
安裝 pyodbc
無疑,這一步是最容易的了。先到這里(http://code.google.com/p/pyodbc/downloads/list)下載 pyodbc 源碼包,然后解壓到相應的目錄,再執(zhí)行:
sudo python setup.py build
sudo python setup.py install
即可。
最后仍然是測試,可以參考http://code.google.com/p/pyodbc/wiki/Examples的代碼。
參考資料
CentOsphpmssql并配置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 主站蜘蛛池模板: 南开区| 临漳县| 商洛市| 商都县| 邵武市| 十堰市| 太和县| 阜新市| 宾阳县| 伽师县| 平山县| 长岛县| 铅山县| 南汇区| 武清区| 重庆市| 金阳县| 盐津县| 永安市| 南华县| 泸水县| 冀州市| 开江县| 阿巴嘎旗| 镇坪县| 新昌县| 双柏县| 雷州市| 贵港市| 大渡口区| 桂东县| 恩平市| 平遥县| 大埔区| 龙门县| 平安县| 巴彦淖尔市| 囊谦县| 齐齐哈尔市| 松溪县| 铜山县|