cloudbeaver默认没有开放impala连接,更不会支持国产数据库了
docker安装运行cloudbeaver可以参考文章:docker安装运行CloudBeaver并设置默认语言为中文
本文跳过cloudbeaver镜像拉取,直接就开始实现自定义数据库连接功能
mkdir /usr/local/cloudbeaver
cd /usr/local/cloudbeaver
docker run --name dbeaver-backup \
--privileged \
-p 8978:8978 \
-d dbeaver/cloudbeaver:latest
进入容器内部:
docker exec -it bc /bin/bash
在上述的cloudbeaver容器内部,执行:
cd /opt/cloudbeaver/server/plugins
找到2个文件:
① io.cloudbeaver.resources.drivers.base_版本号.jar【cloudbeaver界面显示的数据库配置文件】
② org.jkiss.dbeaver.ext.generic_版本号.jar【cloudbeaver数据库连接信息配置文件】
ls | grep io.cloudbeaver.resources.drivers.base
ls | grep org.jkiss.dbeaver.ext.generic
如下:
我的2个文件为:
注意:同一个cloudbeaver镜像下,docker run时,这两个jar文件的版本号是一模一样的!
退出cloudbeaver容器:
exit
上面我们设定了宿主机挂载的根目录为:/usr/local/cloudbeaver
我们把所需文件一个个复制到上述目录中:
#bc是我的cloudbeaver容器ID
docker cp bc:/opt/cloudbeaver/conf/cloudbeaver.conf /usr/local/cloudbeaver/
docker cp bc:/opt/cloudbeaver/drivers /usr/local/cloudbeaver/drivers
docker cp bc:/opt/cloudbeaver/server/plugins/org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar /usr/local/cloudbeaver/
docker cp bc:/opt/cloudbeaver/server/plugins/io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar /usr/local/cloudbeaver/
最终,/usr/local/cloudbeaver目录下的结构为:
docker stop bc
docker rm bc
在上述目录(/usr/local/cloudbeaver)中,执行以下命令:
#后缀版本号请根据实际情况变更
unzip io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar -d io.cloudbeaver.resources.drivers.base_1.0.89.202401081229
unzip org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar -d org.jkiss.dbeaver.ext.generic_2.3.208.202401081229
如果不能识别unzip,可以:yum install -y unzip
解压后目录结构如下:
cd io.cloudbeaver.resources.drivers.base_1.0.89.202401081229
vi plugin.xml
在图示的3处位置添加对应内容:
#压缩当前目录下的所有文件为io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar
jar -cvfm io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar META-INF/MANIFEST.MF ./
#移动新生成的jar文件至上层目录,并覆盖原jar文件
mv io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar ../
cd org.jkiss.dbeaver.ext.generic_2.3.208.202401081229
vi plugin.xml
在任意
dm.png在cloudbeaver中是不存在的(impala_icon.png是自带的),我们可以使用任意图片即可,我这里附上一个达梦数据库图标:
如图:
jar -cvfm org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar META-INF/MANIFEST.MF ./
#移动新生成的jar文件至上层目录,并覆盖原jar文件
mv org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar ../
mkdir /usr/local/cloudbeaver/dm
cd /usr/local/cloudbeaver/dm
把达梦数据库驱动上传至该目录下(驱动在附件中,也可以在官网下载):
mkdir /usr/local/cloudbeaver/impala
cd /usr/local/cloudbeaver/impala
impala的驱动很多,都需要上传至impala目录下:
docker run --name dbeaver \
--restart=always \
--privileged \
-p 8978:8978 \
-v /usr/local/cloudbeaver/workspace:/opt/cloudbeaver/workspace \
-v /usr/local/cloudbeaver/drivers:/opt/cloudbeaver/drivers \
-v /usr/local/cloudbeaver/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf \
-v /usr/local/cloudbeaver/org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar:/opt/cloudbeaver/server/plugins/org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar \
-v /usr/local/cloudbeaver/io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar:/opt/cloudbeaver/server/plugins/io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar \
-d dbeaver/cloudbeaver:latest
稍微解释下:
--restart=always:
--privileged:
-p 8978:8978:
-v /usr/local/cloudbeaver/workspace:/opt/cloudbeaver/workspace
-v /usr/local/cloudbeaver/drivers:/opt/cloudbeaver/drivers
-v /usr/local/cloudbeaver/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf
后面的2个jar挂载,是为了方便扩展自定义数据库连接
我的访问地址为:http://192.168.168.171:8978
初始化配置在这就不说了
新建下数据库连接,测试达梦或impala数据库是否支持:
自定义数据库连接添加成功!
如果连接达梦或impala失败,请检查: