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)

Python3.x: pyodbc+FreeTDS+UinxODBC连接sybase数据库(Linux系统)的更多相关文章

  1. Python3.x:pyodbc连接Sybase数据库操作(Windows系统下DNS模式)

    Python3.x:pyodbc连接Sybase数据库操作(Windows系统下DNS模式) 一.安装模块pyodbc pip install pyodbc 二.配置odbc数据源 (1).windo ...

  2. DBeaver数据库管理工具连接Sybase数据库

    DBeaver数据库管理工具连接Sybase数据库 1. 下载DBeaver 官方网站:http://dbeaver.jkiss.org/ DBeaver5.3.1解压缩版(不用安装和配置):http ...

  3. linux连接sybase数据库-isql

    转自:http://blog.knowsky.com/196438.htm 想要linux连接sybase数据库用命令isql: isql [-U login id] [-P password] [- ...

  4. Python3.x:使用PyMysql连接Mysql数据库

    Python3.x:使用PyMysql连接Mysql数据库 Python3.x完全不向前兼容,导致Python2.x中可以正常使用的库,到了Python3就用不了: 比如说mysqldb,目前MySQ ...

  5. Sybase数据库应用系统调优的五大领域

    Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网 本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数 ...

  6. Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务

    一.引言 今天本来没有打算写这篇文章,当初我感觉使用这个工具应该很简单,下载的过程也不复杂,也没有打算记录下来.但是在使用的过程中还是出现了一些问题,为了给第一次使用Redis Desktop Man ...

  7. Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务(转载6)

    Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务 一.引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题 ...

  8. C#连接Sybase数据库,Anywhere 8

    数据库版本是Adaptive Server Anywhere 8 1.添加引用,程序集 iAnywhere.Data.AsaClient.dll文件在数据库的安装目录下,例如:C:\Program F ...

  9. Xshell连接不上行Linux系统

    之前出现了.我的Linux系统上的主机可以ping通windows的一台电脑, windows也可以ping的通Linux.但是Xshell不能连接. 第一,我感觉是不是我Linux系统的端口被防火墙 ...

随机推荐

  1. 用用匿名函数和闭包加apply强制待定函数调用时使用特定上下文

    <button id="test">点我</button> <script> var button={ clicked:false, click ...

  2. WPF数据验证(4)——响应与获取验证错误

    1780 前面的示例中,有关用户接受到错误的唯一指示是在违反规则的文本框周围的红色轮廓.为了提供更多信息,可以处理 Error 事件,但存储或清除错误时会引发该事件,但前提是必须确保已将 Bindin ...

  3. Hadoop2的FN安装(federated namespace)

    尝试了简单的安装hadoop2后,我们再来尝试一下hdfs的一项新功能:FN.这项技术可以解决namenode容量不足的问题.它采用多个namenode来共享datanode的方式,每个namenod ...

  4. UE对话框

    // Put your "OnButtonClicked" stuff here FText DialogText = FText::Format( LOCTEXT("P ...

  5. TF-IDF(词频-逆向文件频率)用于文字分类

    SVM分类器:支持向量机Support Vector Machine. 一个普通的SVM就是一条直线,用来完美划分linearly separable的两类.解决线性 要解决非线性需要到高维处理: 核 ...

  6. AutoMapper整理收集

    http://www.cnblogs.com/jobs2/p/3503990.html http://www.cnblogs.com/1-2-3/p/AutoMapper-Best-Practice. ...

  7. Tomcat unable to start within 45 seconds.

    解决的方法当然是设定这个时间,让其大于45秒,修改在当前项目所在的workspace\.metadata\.plugins\org.eclipse.wst.server.core\servers.xm ...

  8. hdu2732 (Leapin' Lizards)

    题目链接:传送门 题目大意:给你 n,m  n:有几行图,m是一个人最多跳m个曼哈顿距离. 给你两张图,第一张图数字为0表示没有柱子,否则有柱子且只能跳出去 x 次(x为当前字符代表的数字) 第二张图 ...

  9. poj1325(Machine Schedule)

    题目链接:传送门 题目大意:有k个任务,可以在 A 机器的 x 位上完成,也可以在 B 机器的 y 位上完成.问最少需要多少个点位即可完成所有任务. 题目思路:求最小点覆盖. 把 A 机器,B 机器看 ...

  10. css 中的事件冒泡

    css伪类中的表现类似于事件冒泡的,举个例子,当你滑过一个元素时,他会认为你也滑过了该元素的父元素,即使该元素看起来并没有包含在父元素里面,此处以:hover例子: 效果图: 滑过前: 滑过后: CS ...