linux + pyodbc + freetds + unixodbc 鏈接sybase

操做系統是 RHEL6.2python

  1. 安裝unixodbc以及依賴包c++

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

  2. 安裝 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 操作系統

  3. 配置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> 

  4. 配置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> 

  5. 編譯安裝pyodbc

    unzip pyodbc-3.0.7.zip 

    cd pyodbc-3.0.7

    python setup.py install

  6. 測試pyodbc鏈接

    新建一個xiaosu.py內容以下:

  7. 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 若是能把數據庫中的表所有打印出來,說明成功了

相關文章
相關標籤/搜索