linux(docker中)搭建Oracle客户端解决DPI-1047报错
由于容器化、微服务等概念的流行,项目中需要用到Python环境及在Docker中访问Oracle数据库,在执行Python脚本访问Oracle数据库时遇到如下报错:
在此记录解决该问题的步骤:
首先,到linux官网下载对应Oracle数据库版本(此处需要Oracle11g的客户端文件)的客户端文件,此处我下载的为instantclient-basic-linux.x64-11.2.0.4.0.zip、instantclient-sqlplus-linux.x64-11.2.0.4.0.zip(不知道如何下载客户端自行百度到Oracle官网下载),
下载后上传至服务器的某个路径下:
在/usr/local下新建oracle文件夹,将两个zip文件解压到该文件夹下:
配置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
使环境变量生效,执行如下命令:source /root/.bashrc
安装所需依赖,执行:apt-get install libaio*
执行Python脚本,测试是否能够访问数据库:
测试成功