Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL、Oracle、SQL Server数据库。 欢迎转载,请注明作者、出处。 本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL、Oracle、SQL Server数据库。 一、前提概述... 一、前提概述 pyodbc是一个Python模块,能够让python使用 ODBC 连接来自Windows,Linux,OS/X等系统中的大部分数据库。pyodbc依赖于unixODBC和FreeTDS,因此需要先安装unixODBC和FreeTDS。(FreeTDS是一个开源的C程序库,它可以实现在Linux系统下访问操作SQL Server数据库) 二、驱动安装 1. unixODBC安装 [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安装 复制代码 代码如下: /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.1. 下载:cx_oracle:cx_Oracle-5.1.2-10g-py27-1.x86_64.rpm 复制代码 代码如下: 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 mv client /home/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: 复制代码 代码如下: 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 则需要找到对应的文件建立软链接,如: 复制代码 代码如下: [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操作就不会报错。 [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/oracle@192.168.43.130:1521/orcl" conn=cx_Oracle.connect(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(aspzz.cn) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |