在Linux系统中,使用cx_Oracle连接Oracle数据库是一个常见的需求,下面将详细介绍如何在Linux环境下安装和使用cx_Oracle。
1、下载Oracle Instant Client:从[Oracle官网](https://www.oracle.com/database/technologies/instant-client.html)下载适用于Linux的Instant Client压缩包,如instantclient-basic-linux.x64-12.2.0.1.0.zip
和instantclient-sdk-linux.x64-12.2.0.1.0.zip
,注意要根据你的系统架构(32位或64位)选择相应的版本。
2、解压文件:将下载的压缩包解压到指定目录,例如/opt/instantclient_11_2
。
3、设置环境变量:编辑/etc/profile
文件,添加以下内容:
export ORACLE_HOME=/opt/instantclient_11_2 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
然后执行source /etc/profile
命令使环境变量生效。
1、使用pip安装:如果系统已安装pip,可以直接使用pip命令安装cx_Oracle:
pip install cx_Oracle
如果pip命令无法成功安装,可以尝试下载对应版本的源码包,然后手动安装。
2、离线安装:如果无法联网,可以下载cx_Oracle的离线安装包,如cx_Oracle-5.2.1-11g-py26-1.x86_64.rpm
,然后使用rpm命令进行安装:
rpm -ivh cx_Oracle-5.2.1-11g-py26-1.x86_64.rpm
安装完成后,可以通过以下Python代码测试cx_Oracle是否安装成功以及能否连接到Oracle数据库:
import cx_Oracle 创建数据库连接 connection = cx_Oracle.connect('username', 'password', 'host:port/service_name') 创建游标 cursor = connection.cursor() 执行SQL查询 cursor.execute('SELECT * FROM table_name') 获取查询结果 for row in cursor: print(row) 关闭游标和连接 cursor.close() connection.close()
将上述代码中的username
、password
、host
、port
和service_name
替换为实际的数据库连接信息,如果能够成功打印出查询结果,说明cx_Oracle安装成功且连接正常。
1、问题:ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory
解答:这是由于缺少libclntsh.so的软链接,进入Instant Client安装目录,执行以下命令创建软链接:
ln -s libclntsh.so.11.1 libclntsh.so
2、问题:cx_Oracle.DatabaseError: ORA-28547: connection to server failed, probable Oracle Net admin error
解答:可能是Instant Client版本与数据库版本不匹配,或者网络配置不正确,请检查Instant Client版本是否与数据库版本一致,并确保网络连接正常。
通过以上步骤,可以在Linux系统中成功安装和使用cx_Oracle来连接Oracle数据库,如果在安装过程中遇到问题,可以参考相关文档或社区论坛寻求帮助。