linux + pyodbc + freetds + unixodbc 连接sybase

操作系统是 RHEL6.2

  1. 安装unixodbc以及依赖包

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

  2. 安装 freetds

    tar xf freetds-stable.tgz

    cd freetds-0.91/

    ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/ --with-tdsver=5.0

    make

    make install

  3. 配置freetds并用tsql测试连接

    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 如果能把数据库中的表全部打印出来,说明成功了

时间: 2024-10-12 00:15:07

linux + pyodbc + freetds + unixodbc 连接sybase的相关文章

Linux下通过JDBC连接Oracle,SqlServer和PostgreSQL

今天正好需要统计三个网站栏目信息更新情况,而这三个网站的后台采用了不同的数据库管理系统.初步想法是通过建立一个小的Tomcat webapp,进而通过JDBC访问这三个后台数据库,并根据返回的数据生成报表. 1 开发环境 数据库管理系统:一个是SqlServer 2000,另一个是Oracle 9i,再一个是PostgreSQL9.1 Tomcat执行平台:CentOSx64 + JDK7.0x64 (全64位环境) 2 JDBC驱动的选择 2.1 Oracle9i Oracle官方提供了ojd

LINUX下使用PHP连接MSSQL的方法

目录[-] 如何安装MSSQL.SO 如何安装PDO_LIB.SO 如何安装PDO_ODBC.SO 作者:Roban lee ([email protected]) LINUX下使用PHP连接MSSQL的方法有很多种,根据不同的环境,可以选择不同的方式,大致方法有以下几种: 使用MSSQL.SO扩展 使用PDO_LIB扩展 使用PDO_ODBC扩展 如何安装MSSQL.SO 1. MSSQL.SO 扩展依赖一个外部包,即 freeTDS, FreeTDS 官网: http://www.freet

Linux开启mysql远程连接

Linux开启mysql远程连接的设置步骤 . mysql远程连接linuxserviceserveruserMysql默认root用户只能本地访问,不能远程连接管理mysql数据库,Linux如何开启mysql远程连接?设置步骤如下: 1.GRANT命令创建远程连接mysql授权用户test mysql -u root -p mysql>GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY 'test' WITH GRAN

linux下的静态连接库和动态链接库

对linux的静态连接库和动态链接库分不清楚,在看了一篇博文后,现在想做个自己的总结,以加深印象: 1.库的基本概念: 库是可执行代码的二进制形式,其可以被调入操作系统调入内存进行执行. 在window和linux系统,都存在各自的库,但是两种系统的库并不能兼容,因为它们的编译器,连接器,汇编器都是不相同的. 在windows下,静态连接库的后缀是.lib;动态链接库的后缀是.dll 在linux系统下,静态链接库的后缀是.a;动态链接库的后缀是.so 2.静态连接库和动态链接库的命名: 静态连

Linux下的动态连接库及其实现机制

Linux与Windows的动态连接库概念相似,但是实现机制不同.它引入了GOT表和PLT表的概念,综合使用了多种重定位项,实现了"浮动代码",达到了更好的共享性能.本文对这些技术逐一进行了详细讨论. 本文着重讨论x86体系结构,这是因为 (1)运行Linux的各种体系结构中,以x86最为普及: (2)该体系结构上的Windows操作系统广为人知,由此可以较容易的理解Linux的类似概念: 下表列出了Windows与Linux的近义词,文中将不加以区分: Windows Linux 动

linux服务器查看网卡连接的交换机IP和PORT

cdpr命令: 安装:yum -y install cdpr   (安装epel库) [21:53:07 [email protected] ~]# cdpr -h cdpr - Cisco Discovery Protocol Reporter Version 2.4 Copyright (c) 2002-2010 - MonkeyMental.com d: Specify device to use (eth0, hme0, etc.) h: Print this usage t: time

【Sybase】用odbc连接Sybase数据库

1 string connStr = @"Driver={Sybase ASE ODBC Driver};NA=" + v_strServer + ",4100" 2 + ";Uid=" + v_strUsername 3 + ";Pwd=" + v_strPwd 4 + ";Database=" + v_strDBase 5 + ";Charset=UTF8"; 6 OdbcConne

linux中的硬连接和软连接

linux中的硬连接和软连接 linux中的硬连接和软连接 背景 连接 硬连接 软连接 example reference 背景 linux中的文件主要分3块, - 真正的数据 - 索引节点号(inode index) - 文件名称 读取文件的顺序是通过文件名称.找到相应的inode.然后通过inode找到相应的数据,进行读取. 连接 当我们须要在不同的文件夹,用到同样的文件时.我们不须要在每个须要的文件夹下都放一个必须同样的文件,我们仅仅要在某个固定的文件夹,放上该文件,然后在 其他的文件夹下

Linux 软连接与硬连接

对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应.因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件.注意在Linux下是一切皆文件的啊,文件夹.新加的硬盘 ...都可以看着文件来处理的啊. 连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接.符号连接相当于Windows下的快捷方式. 硬连接可以看作是同一个文件的不同命名. 不可以对文件夹建立硬连接的,我们通常用的还是软连接比较多. eg: ln