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)

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/16769.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论