建议:
- 如果操作系统的版本比较旧,比如我们开始验证时用的Centos 6.10,建议先升级操作系统。
- 正常情况下执行pip install cx_Oracle,安装好oracle客户端,安装了libaio,设置好LD_LIBRARY_LIB之后,应该就能连接oracle,如果提示没找到Glibc2.14,还是建议先升级操作系统,再来安装Superset比较新的版本。
- oracle的配置方式有两种,一种是SID,一种是service_name,如果您用的oracle配置的是service_name方式,创建数据库时的URI需要改一下格式(不是特别确定,因为我们用了自己的前端,生成uri的步骤不是superset自带的)。oracle://dbname:password@ipaddress:port/?service_name=yourtnsname
- 如果不小心删除了/lib64/libc.so.6文件,可以指定LD_PRELOAD来恢复:LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
步骤:
1、pin install cx_Oracle
2、
# mkdir /opt/oracle
# cd /opt/oracle
# wget https://download.oracle.com/otn_software/linux/instantclient/193000/instantclient-basic-linux.x64-19.3.0.0.0dbru.zip
# unzip instantclient-basiclite-linux.x64-19.3.0.0.0dbru.zip
生成新目录: instantclient_19_3
# yum install libaio
--这一步提示已经安装过了,ubuntu 18.04用apt-get install libaio-dev
把oracle客户端的位置加到配置文件中:
# sh -c "echo /opt/oracle/instantclient_19_3 >
> /etc/ld.so.conf.d/oracle-instantclient.conf"
# ldconfig
设置LD_LIBRARY_PATH环境变量:
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_3:$LD_LIBRARY_PATH
3、处理oracle的中文(尚未验证,感谢林余提供的信息 https://www.zhihu.com/people/xie-lin-ling-24/activities)
如果一定要在比较旧的操作系统上使用oracle,可以尝试吧/lib64/libc.so.6删除,再重建指向
/opt/glibc-2.14/lib/libc-2.14.so的软连接。此时需要指定LD_PRELOAD环境变量:
LD_PRELOAD=/lib64/libc-2.12.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
以下为原文:
说明:在centos 6.10上,安装ocacle客户端,增加glibc2.14,解决了glibc2.14带来的UTF-8问题之后,superset无法响应客户端的请求。
只好暂停连接Oracle数据库的尝试,待Ubuntu 18.04环境就绪后,再来验证oracle数据库连接(2019-09-21更新:在ubuntu 18.04上看了一下,libc.so.6 -> libc-2.17.so)。
https://www.cnblogs.com/dbj66/p/9019748.html
--找到一篇安装客户端步骤。
另:19.3的安装步骤可以参考官网:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html#ic_x64_inst
准备工作:从官网下载zip文件。
# mkdir /opt/oracle
# cd /opt/oracle
# /home/instantclient-basiclite-linux.x64-19.3.0.0.0dbru.zip .
# unzip instantclient-basiclite-linux.x64-19.3.0.0.0dbru.zip
生成新目录:
instantclient_19_3
# yum install libaio
--这一步提示已经安装过了
把oracle客户端的位置加到配置文件中:
# sh -c "echo /opt/oracle/instantclient_19_3 >
> /etc/ld.so.conf.d/oracle-instantclient.conf"
# ldconfig
之后重启Superset,重新创建oracle数据库,提示:
version `GLIBC_2.14' not found
--安装glibc2.14的步骤:
https://unix.stackexchange.com/questions/176489/how-to-update-glibc-to-2-14-in-centos-6-5
如果make install报错,可能需要执行下面的操作(Can't open configuration file/opt/glibc-2.14/etc/ld.so.conf: No such file or directory):
cp /etc/ld.so.conf /opt/glibc-2.14/etc/.