操做系統是 RHEL6.2python
安裝unixodbc以及依賴包c++
yum -y install gcc gcc-c++ unixodbc unixODBC-devel python-develsql
安裝 freetds數據庫
tar xf freetds-stable.tgzvim
cd freetds-0.91/ide
./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/ --with-tdsver=5.0測試
makeui
make install 操作系統
配置freetds並用tsql測試鏈接unix
vim /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>
配置unixodbc以及測試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>
編譯安裝pyodbc
unzip pyodbc-3.0.7.zip
cd pyodbc-3.0.7
python setup.py install
測試pyodbc鏈接
新建一個xiaosu.py內容以下:
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
python xiaosu.py 若是能把數據庫中的表所有打印出來,說明成功了