国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Linux下通過python訪問MySQL、Oracle、SQL Server數據庫的方法

2020-01-04 17:31:00
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了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://m.survivalescaperooms.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.pyimport MySQLdbsql='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.pyimport timeimport cx_Oraclesql2="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.rowcountprint "connection string is  : ",conn.dsnprint "the database version is: ",conn.version [root@localhost software]# python test.py('SYSCATALOG', 'SYNONYM', None)1connection string is  : 192.168.43.130:1521/orclthe 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 '時間'")

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临澧县| 通山县| 康保县| 祁门县| 英超| 长武县| 桐梓县| 河间市| 塔城市| 漳平市| 桂平市| 连平县| 南漳县| 清远市| 古田县| 鸡西市| 都昌县| 新野县| 安图县| 乌兰察布市| 资兴市| 翼城县| 蒲江县| 天峻县| 塔河县| 延寿县| 竹溪县| 榆中县| 乳源| 杨浦区| 旬邑县| 灌阳县| 陆良县| 义马市| 东丽区| 杭锦后旗| 南宁市| 南和县| 哈尔滨市| 高密市| 北碚区|