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

Posted 整合侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3.x: pyodbc+freetds+unixodbc连接sybase数据库(Linux系统)相关的知识,希望对你有一定的参考价值。

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

一、安装unixodbc以及依赖包

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

二、安装 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 

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

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

五、编译安装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+unixodbc连接sybase数据库(Linux系统)的主要内容,如果未能解决你的问题,请参考以下文章

linux使用pyodbc和freetds连接sqlserver

linux上的Django-pyodbc SQL Server/freetds服务器连接问题

MSSQL django_pyodbc 连接问题

sqlalchemy 无法连接到 ms sql server

RHEL 6.5 上的 pymssql - 使用 /opt/app/freetds 中的源代码安装 freetds

linux使用freetds 连接连远程服务器sqlservser2012