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
下载地址:http://www.jb51.net/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/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(jb51.net)

(0)

相关推荐

  • Linux中Oracle启动侦听报错TNS:permission denied的解决方法

    前言 最近在开发环境 oracle 启动侦听的时候,出现了 TNS:permission denied 的问题,通过网上和咨询朋友,最终找到了解决方案,现在共享出来给有需要的朋友. 错误描述 [oracle@oracle ~]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-MAR-2015 15:37:59 Copyright (c) 1991, 2009, Oracle. All rights r

  • Linux 自动备份oracle数据库详解

    Linux 自动备份oracle数据: 曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非常有必要. 简单实用的晚间自动备份数据库小案例 步骤一.创建备份脚本,暂且命名为orabak.sh #路径名,指定备份的路径 FILEPATH = /oracle/orabak #根据指定日期格式,定义备份数据库文件名 FILENAME = `date + %

  • Linux下安装Oracle(CentOS-Oracle 12c)的方法

    第一步:网络连接,在我的上一篇博客中有介绍,不再多说. 网络连接的目的:为了能使用yum命令,在网上直接下载文件. 第二步:前往oracle官网下载12c database服务器端的两个文件:(安装在Linux) linuxamd64_12102_database_1of2.zip linuxamd64_12102_database_2of2.zip 将这两个文件放在Linux的tmp目录下,使用 unzip 命令来解压. database的client的一个文件:(安装在Windows) 32

  • Linux中Oracle服务启动和停止脚本与开机自启动

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle. 一.在Linux下启动Oracle 登录到CentOS,切换到oracle用户权限 # su – oracle 接着输入: $ sqlplus "/as sysdba" 原本的画面会变为 SQL> 接着请输入 SQL> startup 就可以正

  • linux系统下oracle11gR2静默安装的经验分享

    前言: 1.我的linux是64位的redhat6.5,安装的oracle版本是11.2.0的. 2.我这是自己安装的linux虚拟机,主机名为ora11g,ip为192.168.100.122 3.这台机器以前没有安装过oracle数据库,这是第一次安装:系统安装好了之后,仅仅只配了ip地址:所以新手完全可以按照我的步骤装一次oracle. 准备工作: 1.确认主机名一致: [root@ora11g ~]# vi /etc/hosts 在末尾添加   (#其中192.168.100.123为本

  • Linux下修改Oracle监听地址的方法

    lisenter.ora 目录在 /opt/oracle/11g/network/admin LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.111.123)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /opt/oracle tnsnames.o

  • Linux下安装Oracle 11g出现prvf-0002错误解决办法

    Linux下安装Oracle 11g出现prvf-0002错误解决办法 Linux下安装Oracle 11g,有时会提示一个错误: 提示是不能获取本地节点名. PRVF意思应是安装前的检查,没有查出缩写,我猜是Pre-Requisite VeriFication的缩写.若错了还请指正. 使用oerr工具看看, oerr prvf 0002 0002, ERROR_LOCAL_NODENAME_NOT_FOUND, "Could not retrieve local nodename"

  • 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.SQ

  • Windows和Linux下使用Python访问SqlServer的方法介绍

    经常用Python写demo来验证方案的可行性,最近遇到了Python访问SqlServer的问题,这里总结下. 一.Windows下配置Python访问Sqlserver 环境:Windows 7 + Sqlserver 2008 1.下载并安装pyodbc 下载地址:http://code.google.com/p/pyodbc/downloads/list 2.访问SqlServer 复制代码 代码如下: >>> import pyodbc >>>cnxn = p

  • Windows和Linux系统下perl连接SQL Server数据库的方法

    本文将提供一些perl连接Microsoft SQL Server数据库的实例.perl脚本运行在Windows和Linux平台. Windows平台 如果在Windows平台下运行perl脚本,建议使用依赖DBI的两个模块包,提供标准的数据库接口模块. DBD::ODBC DBD::ADO 使用DBD::ODBC 如果选用DBD::ODBC,下面的实例代码将展示如何连接到SQL Server数据库: 复制代码 代码如下: use DBI;   # DBD::ODBC   my $dsn = '

  • go语言通过odbc访问Sql Server数据库的方法

    本文实例讲述了go语言通过odbc访问Sql Server数据库的方法.分享给大家供大家参考.具体如下: 这里需要用到go-odbc库,开源地址为:https://github.com/weigj/go-odbc 复制代码 代码如下: package main; import (     "fmt"     "database/sql"     _"odbc/driver" ) func main(){     conn,err := sql.O

  • Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载pymssql模块,这样才能连接上sql server. 我安装的python版本是3.5 ,64位的,所以下载的pymssql模块是:pymssql-2.1.3-cp35-cp35m-win_amd64.whl 我把文件下载后放到E盘,安装pymssql模块: C:\Users\Administr

  • C#实现异步连接Sql Server数据库的方法

    本文实例讲述了C#实现异步连接Sql Server数据库的方法.分享给大家供大家参考.具体分析如下: .net最新版提供了await方法,可以使我们可以很容易实现到数据库的异步连接 复制代码 代码如下: readonly string ConnectionString = "Data Source=database_server_name;Initial Catalog=Store;Integrated Security=True"; protected async void Exec

  • python连接sql server数据库的方法实战

    目录 一.安装第三方模块 二.连接数据库 三.遇到的问题 总结 一.安装第三方模块 首先要下载名为"pymssql"的模块,然后import该模块 安装方法 :1.第一种方法:按win+r----> 输入cmd—>输入以下命令即可 pip install pymssql 2.第二种方法:打开pycharm,点击File,再点击settings,点击settings之后再点击project下面的project Interpreter,在界面中点击+号,直接搜索pymssql模

  • JavaScript使用ActiveXObject访问Access和SQL Server数据库

    JS操作 Access 数据库 复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript">  <!--  var filePath = location.href.substring(0, location.href.indexOf("实例197.连接Access数据库.html"));    //以当前页面文件为基础,找到文件所在的绝对路径  var path = filePath + "197.mdb"

  • Activiti-Explorer使用sql server数据库实现方法

    如何让Activiti-Explorer使用sql server数据库 从官网下载的Activiti-explorer的war文件内部默认是使用h2内存数据库的,如果想改用其他的数据库来做持久化,比如sql server,需要做如下配置. 1)修改db.properties文件 路径:C:\apache-tomcat-7.0.64\webapps\activiti-explorer\WEB-INF\classes\db.properties 内容如下: db=mssql jdbc.driver=

  • java连接SQL Server数据库的方法

    本文实例为大家分享了java连接SQL Server数据库的具体代码,供大家参考,具体内容如下 操作系统:windows 10 64位 java开发环境:MyEclipse 数据库:SQL Server 2012 JDBC驱动包 下载sqljdbc4.jar 导入到项目中 JAVA代码 package com.cl.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSt

随机推荐