可视化工具superset连oracle数据库 DPI-1047

DPI-1047: Cannot locate a 64-bit Oracle Client library

每次配置superset数据源oracle连接都报错 DPI-1047: Cannot locate a 64-bit Oracle Client library: libclntsh.so: cannot open shared object file: No such file or directory,即使我在profile、bashrc等文件写上了LD_LIBRARY_PATH都不行。甚至于在创建容器的时传递环境变量以及在superset_config中配置了相关环境变量都不行

安装oracle 客户端 oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

alien oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
dpkg -i oracle-instantclient11.2-basic_11.2.0.4.0-2_amd64.deb

  

/etc/profile

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

 下面这个步很重要,至关重要

root@9e4abb311e7b:/home/superset# cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
/usr/lib/oracle/11.2/client64/lib

 

docker restart superset 

至此,可以连上数据库获取到数据了,但是还有问题:中文乱码

 

 

(base) lilin@lecarbi:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=

 

(base) lilin@lecarbi:~$ cat /data/superset/superset_config.py 
import os
os.putenv('LC_ALL','zh_CN.UTF-8')
os.putenv('NLS_LANG','american_america.AL32UTF8')

中文乱码的问题解决了。

posted @ 2022-01-25 19:59  lazycn  阅读(587)  评论(0编辑  收藏  举报