Python3.x: pyodbc+FreeTDS+UinxODBC鏈接sybase數據庫(Linux系統)

Python3.x: pyodbc+FreeTDS+UinxODBC鏈接sybase數據庫(Linux系統)

1、安裝UinxODBC以及依賴包

yum -y install gcc gcc-c++ unixodbc unixODBC-devel  python-devel

下載地址:ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.0.tar.gzpython

下載安裝包unixODBC-2.3.0.tar.gz放到/usr/local下。c++

unixODBC版本目前有兩套,soname爲libodbc.so.1與soname爲libodbc.so.2sql

對於使用libodbc.so.1的驅動下載unixODBC-2.3.0.tar.gz,做者本身發現最高版本的libodbc.so.1庫;
對於使用libodbc.so.2的驅動下載最新的unixODBC便可。數據庫

2、安裝 FreeTDS

這個軟件可以用Linux和Unix鏈接MS SQLServer和Sybase數據庫。vim

官方網站:http://www.freetds.org測試

版本:0.64下載地址:http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz網站

tar xf freetds-stable.tgz
cd freetds-0.91/
./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/ --with-tdsver=5.0
# ./configure --prefix=/usr/local/freetds0.91  --enable-msdblib  --with-tdsver=8.0  make make install

3、配置FreeTDS並用tsql測試鏈接

vi /usr/local/freetds/etc/freetds.conf
#添加以下內容:
[Sybase]
        host = IP 地址
        port = 端口號
        tds version = 5.0
        client charset = UTF-8
#具體的IP和端口號替換成我的所需便可
#測試鏈接:
/usr/local/freetds/bin/tsql -S Sybase  -U 用戶名 -P 密碼
#若是出現以下內容,或者相似內容,表示鏈接成功,此時能夠執行一些SQL語句試試
locale is "en_US.utf8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> select getdate()
2> go
getdate()
Nov 29 2018 02:05:20:050PM
(1 row affected)
1>

4、配置UinxODBC以及測試isql

#建立驅動的模板文件1.txt 內容以下:
[TDS]
Description             = Sybase
Setup           = /usr/lib/libtdsS.so
Driver64                = /usr/local/freetds/lib/libtdsodbc.so
Driver          = /usr/local/freetds/lib/libtdsodbc.so
setup64         = /usr/lib64/libtdsS.so
FileUsage               = 1
UsageCount              = 2
#而後使用odbcinst安裝驅動:
odbcinst -i -d -f 1.txt
#執行完成以後,能夠檢查一下/etc/odbcinst.ini,若是能夠看到TDS的內容,說明配置沒問題
#也能夠用odbcinst -q -d 檢查驅動
#建立數據源的模板文件,內容以下:
[xiaosu]
Driver =  TDS
Descrption = Sybase Server
Trace = No
Server =  IP地址
Database = 數據庫
Port = 端口號
#這裏的Database,IP地址和端口號替換成本身須要的便可
odbcinst -i -s -f 2.txt
#執行完成之後,會在用戶的home目錄下生成.odbc.ini的文件,vim ~/.odbc.ini檢查一下文件內容便可。也能夠用odbcinst -q -s檢查可用的數據源
#用isql測試鏈接: isql -v xiaosu  用戶名  密碼
#若是出現以下內容,說明鏈接成功了。
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

5、編譯安裝pyodbc

unzip pyodbc-3.0.7.zip 
cd pyodbc-3.0.7
python setup.py install

6、測試pyodbc鏈接

import pyodbc
conn=pyodbc.connect("DSN=xiaosu;UID=uid;pwd=password")
cursor=conn.cursor()
#輸出數據庫中全部表名
cursor.execute("select name from sysobjects where type ='U'")
for i in cursor:
    print(i)
相關文章
相關標籤/搜索