linux(docker中)搭建Oracle客户端解决DPI-1047报错

由于容器化、微服务等概念的流行,项目中需要用到Python环境及在Docker中访问Oracle数据库,在执行Python脚本访问Oracle数据库时遇到如下报错:

linux(docker中)搭建Oracle客户端解决DPI-1047报错

在此记录解决该问题的步骤:

首先,到linux官网下载对应Oracle数据库版本(此处需要Oracle11g的客户端文件)的客户端文件,此处我下载的为instantclient-basic-linux.x64-11.2.0.4.0.zip、instantclient-sqlplus-linux.x64-11.2.0.4.0.zip(不知道如何下载客户端自行百度到Oracle官网下载),

下载后上传至服务器的某个路径下:

linux(docker中)搭建Oracle客户端解决DPI-1047报错

在/usr/local下新建oracle文件夹,将两个zip文件解压到该文件夹下:

linux(docker中)搭建Oracle客户端解决DPI-1047报错

配置Oracle客户端环境变量,执行如下命令编辑/root/.bashrc:

vim /root/.bashrc

写入如下内容:

export ORACLE_HOME=/usr/local/oracle/instantclient_11_2
export TNS_ADMIN=$ORACLE_HOME/network/admin
##export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH

linux(docker中)搭建Oracle客户端解决DPI-1047报错

使环境变量生效,执行如下命令:source /root/.bashrc 

linux(docker中)搭建Oracle客户端解决DPI-1047报错

安装所需依赖,执行:apt-get install libaio*

linux(docker中)搭建Oracle客户端解决DPI-1047报错

执行Python脚本,测试是否能够访问数据库:

linux(docker中)搭建Oracle客户端解决DPI-1047报错

测试成功