测试主机:CentOS 7 X86_64,Python 2.7.5,cx_Oracle 7.3.0,Instant Clinet Base19.24.0.0.0和SQL*Plus19.24.0.0.0
1. 下载cx_Oracle
由于Python连接Oracle需要通过cx_Oracle并且需要Oracle客户端,前文写了MacOS如何通过cx_Oracle连接数据库。现在在CentOS上仍然可以操作,之前用的是Python3.12但是CentOS上用的是Python2.7.5。
登陆PyPI官网,搜索cx_Oracle。PyPI是一个为Python编程语言提供的软件仓库其中一个服务就是开发者可以将他们开发的Python包上传到PyPI,供全球的Python社区下载和使用。所以我们可以在官网上找到我们需要的包传到主机上。
cx_Oracle最新版本是8.3.0,但是需要的都是Pthon3.x,通过所历史版本发现7.3.0支持Linux版本,可以点击直接转跳7.3.0版本。选择名为cx_Oracle-7.3.0-cp27-cp27mu-manylinux1_x86_64.whl的安装包(倒数第四个),如果懒得话可以直接点击文件名下载QaQ。这就是我们需要的cx_Oracle安装包了。


2. 下载Oracle Instant Client
Oracle Instant Client可以在官网直接下载,Oracle Instant Client是一个轻量级且易于安装的Oracle数据库工具。不同的操作系统都可以下载,现在也支持了ARM架构的Macbook。由于CentOS是Linux x86_64的,所以选择对应的链接。
由于Python2.7支持的cx_Oracle版本较低,所以不能下载较高版本的Oracle Instant Client,不然会报错(踩坑,我还是用原来的23.5.0.0.0)因为cx_Oracle 7.3.0 不支持 GLIBC 2.27,所以只能降低Oracle Instant Client版本。
这里选择了Version 19.24.0.0.0 (Requires glibc 2.14),正好可以适配7.3.0版本的cx_Oracle。要下载两个文件Basic Package和SQL*Plus Package。
3. CentOS设置
登陆到CentOS主机,上传whl文件和两个客户端的两个安装包。
# 安装依赖包
yum install libaio
yum install libaio-devel
# 解压安装包
unzip instantclient-basic-linux.x64-19.24.0.0.0dbru.zip -d /opt
unzip instantclient-sqlplus-linux.x64-19.24.0.0.0dbru.zip -d /opt
# 设置环境变量
cd /opt
vi .bashrc
export ORACLE_HOME=/opt/instantclient_19_24
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME
source .bashrc
# 测试是否成功
sqlplus
# 输出
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 26 10:01:44 2024
Version 19.24.0.0.0
Copyright (c) 1982, 2024, Oracle. All rights reserved.
4. 测试cx_Oracle
vim test.py
# 写文件
import cx_Oracle
# 替换为你的实际用户名、密码和数据库连接字符串
username = 'username'
password = 'password'
dsn = 'localhost:1521/orcl' # 数据源名称
# 创建连接
connection = cx_Oracle.connect(username, password, dsn)
cur = connection.cursor()
cur.execute("select * from TABLE")
for column in cur.description:
print(column)
运行python test.py,如果终端有返回对应的值,表示成功链接Oracle数据库。



1377

被折叠的 条评论
为什么被折叠?



