日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...

發(fā)布時間:2024/1/23 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文檔主要描述了Linux下python數(shù)據(jù)庫驅(qū)動的安裝和配置,用來實現(xiàn)在Linux平臺下通過python訪問MySQL、Oracle、SQL Server數(shù)據(jù)庫。

其中包括以下幾個軟件的安裝及配置:

unixODBC

FreeTDS

pyodbc

cx_Oracle

歡迎轉(zhuǎn)載,請注明作者、出處。

作者:張正

QQ:176036317

如有疑問,歡迎聯(lián)系。

本文檔主要描述了Linux下python數(shù)據(jù)庫驅(qū)動的安裝和配置,用來實現(xiàn)在Linux平臺下通過python訪問MySQL、Oracle、SQL Server數(shù)據(jù)庫。

一、前提概述...

二、驅(qū)動安裝...

1. unixODBC安裝...

2. FreeTds安裝...

3. pyodbc安裝...

4. cx_Oracle安裝...

三、驅(qū)動配置...

四、連接測試...

一、前提概述

pyodbc是一個Python模塊,能夠讓python使用 ODBC 連接來自Windows, Linux, OS/X等系統(tǒng)中的大部分?jǐn)?shù)據(jù)庫。pyodbc依賴于unixODBC和FreeTDS,因此需要先安裝unixODBC和FreeTDS。(FreeTDS是一個開源的C程序庫,它可以實現(xiàn)在Linux系統(tǒng)下訪問操作SQL Server數(shù)據(jù)庫)

cx_Oracle 是一個用來連接并操作 Oracle 數(shù)據(jù)庫的 Python 擴(kuò)展模塊, 支持包括 Oracle 9.2 10.2 以及 11.1 等版本。

二、驅(qū)動安裝

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 $?查看退出狀態(tài),為0則正常,可進(jìn)行下一步操作。(MYSQL驅(qū)動可安裝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 $?查看退出狀態(tài),安裝完后可查看freeTds相關(guān)版本及安裝信息:

cd src/apps/

./tsql -C

3. pyodbc安裝

下載pyodbc-3.0.6.zip

unzip pyodbc-3.0.6.zip

cd pyodbc-3.0.6

python setup.py build

python setup.py install

NOTES:安裝時build 遇到以下錯誤,而且gcc相關(guān)包已經(jīng)安裝完全

/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版本,發(fā)現(xiàn)其為python 2.4,通過官網(wǎng)下載頁面信息對比,可知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:

需要下載對應(yīng)版本的驅(qū)動

4.2? oracle instant client 安裝:

gunzip 10201_client_linux_x86_64.cpio.gz

cpio -idmv < 10201_client_linux_x86_64.cpio

在~/.bash_profile中添加oracle相關(guān)配置:

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 進(jìn)行安裝:

cd /home/oracle/client/response

vi instantClient.rsp

修改以下參數(shù):

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

三、驅(qū)動配置

1. 配置freetds:

vi /etc/freetds/etc/freetds.conf

text size = 10240000

client charset = UTF-8

2. 配置freetds驅(qū)動:

vi freetds.ini

[FreeTDS]

Description???? = 0.91 with protocol v7.0

Driver????????? = /etc/freetds/lib/libtdsodbc.so

odbcinst -i -d -f freetds.ini

3. 配置數(shù)據(jù)源:

vi db.ini

[SQLSERVER]

Driver = FreeTDS

Description = SQLSERVER

Trace?? =No

Server? =192.168.16.13

Port??? =1433

Database=master

#此處需要配置SQL Server數(shù)據(jù)的連接信息

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

則需要找到對應(yīng)的文件建立軟鏈接,如:

ln -s /opt/oracle/db_10g/lib/libclntsh.so.10.1 /usr/lib64/libclntsh.so.10.1

四、連接測試

1. 前提說明:

本處提供的連接測試,僅僅是一個簡單的連通并發(fā)起查詢,以證明驅(qū)動的正確安裝和配置。

可先進(jìn)行import 查看驅(qū)動安裝是否有誤:

[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

>>>

若驅(qū)動正確安裝,執(zhí)行import操作就不會報錯。

2. MySQL連接測試:

3.Oracle連接測試:

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

總結(jié)

以上是生活随笔為你收集整理的linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。