• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法

python 搞代码 4年前 (2022-01-07) 16次浏览 已收录 0个评论

这篇文章主要介绍了Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法,需要的朋友可以参考下

本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL、Oracle、SQL Server数据库。
其中包括以下几个软件的安装及配置:
unixODBC
FreeTDS
pyodbc
cx_Oracle

欢迎转载,请注明作者、出处。
作者:张正
QQ:176036317
如有疑问,欢迎联系。       

本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL、Oracle、SQL Server数据库。

一、前提概述…
二、驱动安装…
1. unixODBC安装…
2. FreeTds安装…
3. pyodbc安装…
4. cx_Oracle安装…
三、驱动配置…
四、连接测试…

一、前提概述

pyodbc是一个Python模块,能够让python使用 ODBC 连接来自Windows, Linux, OS/X等系统中的大部分数据库。pyodbc依赖于unixODBC和FreeTDS,因此需要先安装unixODBC和FreeTDS。(FreeTDS是一个开源的C程序库,它可以实现在Linux系统下访问操作SQL Server数据库)
cx_Oracle 是一个用来连接并操作 Oracle 数据库的 Python 扩展模块, 支持包括 Oracle 9.2 10.2 以及 11.1 等版本。

二、驱动安装

1. unixODBC安装
         a.下载unixODBC安装包:unixODBC-2.3.2.tar.gz
         下载地址:http://www.linuxfromscratch.org/blfs/view/cvs/general/unixodbc.html
         b.解压:tar -zxf unixODBC-2.3.2.tar.gz
         c.安装:cd unixODBC-2.3.2
         ./configure –enable-gui=no
         make
         make install
         NOTES:
         编译安装三个步骤之间,可通过echo $?查看退出状态,为0则正常,可进行下一步操作。(MYSQL驱动可安装MySQL-python.x86_64)
 
2. FreeTds安装
         下载FreeTds安装包:freetds-stable.tgz
         下载地址:http://www.freetds.org/
         tar -zxvf freetds-stable.tgz
         cd freetds-0.91
./configure –prefix=/etc/freetds –with-tdsver=7.0 –enable-msdblib –with-gnu-ld  –enable-shared –enable-static
         make
         make install
         同样可通过echo $?查看退出状态,安装完后可查看freeTds相关版本及安装信息:
         cd src/apps/
         ./tsql -C

 [root@localhost apps]# ./tsql -C Compile-time settings (established with the "configure" script) Version: freetds v0.91 freetds.conf directory: /usr/local/etc MS db-lib source compatibility: no Sybase binary compatibility: no Thread safety: yes iconv library: yes TDS version: 7.1 iODBC: no unixodbc: yes SSPI "trusted" logins: no Kerberos: no

3. pyodbc安装
下载pyodbc-3.0.6.zip
下载地址:https://www.gaodaima.com/softs/453989.html
unzip pyodbc-3.0.6.zip
cd pyodbc-3.0.6
python setup.py build
python setup.py install
NOTES:安装时build 遇到以下错误,而且gcc相关包已经安装完全

代码如下:
/root/software/pyodbc-3.0.6/src/connection.h:27: error: ‘uintptr_t’ does not name a type
error: command ‘gcc’ failed with exit status 1

 查看python版本,发现其为python 2.4,通过官网下载页面信息对比,可知pyodbc-3.0.6不支持python 2.4,重新下载pyodbc-2.1.7安装即可。
 
4. cx_Oracle安装

4.1. 下载:cx_oracle:cx_Oracle-5.1.2-10g-py27-1.x86_64.rpm
http://sourceforge.net/projects/cx-oracle/files/
NOTES:
需要下载对应版本的驱动
 
4.2  oracle instant client 安装:
gunzip 10201_client_linux_x86_64.cpio.gz
cpio -idmv <10201_client_linux_x86_64.cpio
在~/.bash_profile中添加oracle相关配置:

代码如下:
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/client_10g
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH

建立oracle用户和文件目录

代码如下:
groupadd dba
useradd -g dba oracle
su – oracle
mkdir -p /opt/oracle/client_10g

配置.bash_profile
回到root用户:

mv client /home/oracle/
[root@localhost software]# chown -R oracle:dba /home/oracle/client
 
su – oracle 进行安装:

代码如下:
cd /home/oracle/client/response
vi instantClient.rsp

修改以下参数:

代码如下:
UNIX_GROUP_NAME=dba
ORACLE_HOME=/opt/oracle/client_10g
ORACLE_HOME_NAME=OraClient10ghome1
cd ../
./runInstaller -silent -noconfig -responseFile /home/oracle/client/response/instantClient.rsp
python setup.py build
python setup.py install

4.3 安装cx_Oracle:

代码如下:
rpm -ivh cx_oracle:cx_Oracle-5.1.2-10g-py27-1.x86_64.rpm

三、驱动配置

 1. 配置freetds:
vi /etc/freetds/etc/freetds.conf
text size = 10240000
client charset = UTF-8
 
2. 配置freetds驱动:
vi freetds.ini
[FreeTDS]
Description     = 0.91 with protocol v7.0
Driver          = /etc/freetds/lib/libtdsodbc.so
 
odbcinst -i -d -f freetds.ini
 
3. 配置数据源:
vi db.ini
[SQLSERVER]
Driver = FreeTDS
Description = SQLSERVER
Trace   =No
Server  =192.168.16.13
Port    =1433
Database=master
#此处需要配置SQL Server数据的连接信息
 
odbcinst -i -s -f db.ini
 
cat /root/.odbc.ini
[SQLSERVER]
Driver=FreeTDS
Description=SQLSERVER
Trace=No
Server=192.168.16.13
Port=1433
Database=master
 
NOTES:
若见到以下错误:

代码如下:
import cx_Oracle
Traceback (most recent call last):
  File “”, line 1, in ?
ImportError: libclntsh.so.10.1: cannot open shared object file: No such file or directory

则需要找到对应的文件建立软链接,如:
ln -s /opt/oracle/db_10g/lib/libclntsh.so.10.1 /usr/lib64/libclntsh.so.10.1
 
四、连接测试
1. 前提说明:
         本处提供的连接测试,仅仅是一个简单的连通并发起查询,以证明驱动的正确安装和配置。
         可先进行import 查看驱动安装是否有误:

代码如下:
[root@localhost etc]# python
Python 2.4.3 (#1, Apr 14 2011, 20:41:59)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb #测试MySQL
>>> import cx_Oracle #测试Oracle
>>> import pyodbc   #测试pyodbc,可访问SQL Server
>>>

若驱动正确安装,执行import操作就不会报错。

2. MySQL连接测试:

 [root@localhost software]# cat mysql_test.py import MySQLdb sql='show databases'; conn=MySQLdb.connect(host='localhost',user='test',passwd='test',db='test',port=3306) cur=conn.cursor() cur.execute(sql) print cur.fetchone() [root@localhost software]# python mysql_test.py ('information_schema',)

3.Oracle连接测试:

 [root@localhost software]# cat test.py import time import cx_Oracle sql2="select * from tab"; connstr="system/[email protected]:1521/orcl" conn=cx_Oracle.c<a style="color:transparent">来源gao($daima.com搞@代@#码网</a>onnect(connstr) cur=conn.cursor() aa=cur.execute(sql2) print cur.fetchone() print cur.rowcount print "connection string is  : ",conn.dsn print "the database version is: ",conn.version [root@localhost software]# python test.py ('SYSCATALOG', 'SYNONYM', None) 1 connection string is  : 192.168.43.130:1521/orcl the database version is: 10.2.0.1.0

4.SQL Server连接测试

代码如下:
[root@localhost software]# cat test_sqlserver.py
import pyodbc
dd=sqlserver(‘DRIVER=FreeTDS;SERVER=192.168.16.13;PORT=1433;DATABASE=master;UID=dba_test_tmp;PWD=nimeia;TDS_Version=8.0;’,”select getdate() as ‘时间'”)

最后附上完整的word版:pythonsjkqdaz(gaodaima.com)

以上就是Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址