云服务器部署安装cx_Oracel(python脚本直接连接oracle数据库)


python连接oracle数据库 具体过程可见博客:https://www.cnblogs.com/kerrycode/p/11665926.html 需要安装64位的cx-Oracle包,安装步骤如下: oracle账户密码: 2115731095@qq.com 970515yjyYJY! 1、安装cx_Oracle安装包 [root@localhost]pip install cx_Oracle Requirement already satisfied: cx_Oracle in /usr/local/python3/lib/python3.6/site-packages (8.3.0) 2、安装oracle64位客户端 这里我们打算安装Oracle Instant Client,可以去下面官方网址选择正确的、所需的版本。本次实验,我选择了instantclient-basic-linux.x64-11.2.0.4.0.zip(本机安装压缩包在D:/Linux/Oracle) https://www.oracle.com/database/technologies/instant-client/downloads.html https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html 安装过程简单如下: (1)解压到指定目录 mkdir -p /opt/oracle cd /opt/oracle/ mv instantclient-basic-linux.x64-11.2.0.4.0.zip  /opt/oracle/ yum install unzip unzip instantclient-basic-linux.x64-11.2.0.4.0.zip (2)在操作系统安装libaio package,否则有可能在运行python脚本时遇到错误提示“ImportError: libaio.so.1: cannot open shared object file: No such file or directory” yum install libaio 注意:这个不是必须的,有些情况下会遇到这个错误。 (3)将Instant Client永久添加到运行时链接路径 sudo sh -c "echo /opt/oracle/instantclient_11_2  > /etc/ld.so.conf.d/oracle-instantclient.conf" sudo  ldconfig #   或者将环境变量LD_LIBRARY_PATH设置为Instant Client版本的相应目录: # echo $LD_LIBRARY_PATH /usr/local/hadoop/lib/native 在/etc/profile中加入 export LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2:$LD_LIBRARY_PATH # source /etc/profile # echo $LD_LIBRARY_PATH /opt/oracle/instantclient_11_2:/usr/local/hadoop/lib/native mkdir -p /opt/oracle/instantclient_11_2/network/admin   其它平台的安装(或者RPM安装), 官方文档https://oracle.github.io/odpi/doc/installation.html#linux 有详细介绍,这里就不画蛇添足。 RPM的安装也很简单,如下所示 #rpm -ivh oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm  Preparing...                ########################################### [100%]    1:oracle-instantclient19.########################################### [100%]   总结:需要注意的是,安装是必须版本一致:cx_Oracle、Oracle Client、Python最好一致,否则就会出现很多问题,例如下面这些(学习、测试中遇到的错误): - 1:cx_Oracle 报错:cx_Oracle.DatabaseError: DPI-1050: Oracle Client library must be at version 11.2 - 2:cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib/oracle/19.3/client64/lib/libclntsh.so)". See https://oracle.github.io/odpi/doc/installation.html#linux for help