zoukankan      html  css  js  c++  java
  • Python3.x: pyodbc+FreeTDS+UinxODBC连接sybase数据库(Linux系统)

    Python3.x: pyodbc+FreeTDS+UinxODBC连接sybase数据库(Linux系统)

    一、安装UinxODBC以及依赖包

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

    下载地址:ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.0.tar.gz

    下载安装包unixODBC-2.3.0.tar.gz放到/usr/local下。

    unixODBC版本目前有两套,soname为libodbc.so.1与soname为libodbc.so.2

    对于使用libodbc.so.1的驱动下载unixODBC-2.3.0.tar.gz,作者自己发现最高版本的libodbc.so.1库;
    对于使用libodbc.so.2的驱动下载最新的unixODBC即可。

    二、安装 FreeTDS

    这个软件能够用Linux和Unix连接MS SQLServer和Sybase数据库。

    官方网站: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

    三、配置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>

    四、配置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> 

    五、编译安装pyodbc

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

    六、测试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)
  • 相关阅读:
    技术转型之路开启
    kotlin入门 (教程难点)
    linux入门
    Code-Breaking Puzzles做题记录
    bugku-login4-CBC字节翻转攻击
    bugku-就五层你能解开吗WP
    上海市数学教材
    书目推荐
    Zeta(2) 有图版
    UnitTest测试框架全栈详解(十)
  • 原文地址:https://www.cnblogs.com/lizm166/p/8431350.html
Copyright © 2011-2022 走看看