往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)

cloudbeaver默认没有开放impala连接,更不会支持国产数据库了

docker安装运行cloudbeaver可以参考文章:docker安装运行CloudBeaver并设置默认语言为中文

本文跳过cloudbeaver镜像拉取,直接就开始实现自定义数据库连接功能

1、初始化cloudbeaver容器挂载配置

1.1、新建挂载的宿主机根目录

  • 挂载的文件都放置该目录下
mkdir /usr/local/cloudbeaver

cd /usr/local/cloudbeaver

1.2、运行cloudbeaver容器,提取挂载文件

  • docker挂载时,不会自动把容器内的文件复制到宿主机
  • 运行cloudbeaver的目的是为了提取所需的挂载文件,为后续完整的cloudbeaver容器运行做铺垫
1、运行cloudbeaver
docker run  --name dbeaver-backup \
--privileged \
-p 8978:8978 \
-d dbeaver/cloudbeaver:latest
  • 我启动的容器ID为:bc78dedbc293(可以简写为bc)

2、cloudbeaver容器中工作目录概览

进入容器内部:

docker exec -it bc /bin/bash

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第1张图片

  • conf:存放cloudbeaver配置文件
  • drivers:存放cloudbeaver连接各个数据库驱动的目录
  • server:cloudbeaver后端服务目录(java服务)
  • web:cloudbeaver的前端页面文件存放目录
  • workspace:cloudbeaver运行时数据存放目录,cloudbeaver默认数据库(h2)文件存储地
3、扩展cloudbeaver自定义连接的2个重要文件

在上述的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个文件为:

  • io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar
  • org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar

注意:同一个cloudbeaver镜像下,docker run时,这两个jar文件的版本号是一模一样的!

4、复制cloudbeaver容器中文件至宿主机

退出cloudbeaver容器:

exit

上面我们设定了宿主机挂载的根目录为:/usr/local/cloudbeaver

我们把所需文件一个个复制到上述目录中:

  • 复制cloudbeaver主配置文件
#bc是我的cloudbeaver容器ID
docker cp bc:/opt/cloudbeaver/conf/cloudbeaver.conf /usr/local/cloudbeaver/
  • 复制cloudbeaver驱动目录 
docker cp bc:/opt/cloudbeaver/drivers /usr/local/cloudbeaver/drivers
  • 复制扩展自定义数据库连接的2个jar文件
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中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第2张图片

5、删除cloudbeaver容器
  •  所需的挂载文件都拷贝至宿主机中了,之前运行的cloudbeaver可以删除,之后会运行新的cloudbeaver容器
docker stop bc

docker rm bc

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第3张图片

2、添加自定义数据库连接配置

2.1、解压jar文件

  • 确保你的机器安装并配置好了jdk!

在上述目录(/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 

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第4张图片

解压后目录结构如下:

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第5张图片

2.2、添加页面自定义数据库连接的选项配置

  • 进入io.cloudbeaver.resources.drivers.base_1.0.89.202401081229文件夹中,编辑plugin.xml文件
  • 目的:使自定义数据库连接项,能在cloudbeaver前端界面上展示并使用
cd io.cloudbeaver.resources.drivers.base_1.0.89.202401081229

vi plugin.xml

在图示的3处位置添加对应内容:

  • 添加达梦数据库与impala数据库连接信息








往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第6张图片

2.3、重新生成io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar文件

#压缩当前目录下的所有文件为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 ../

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第7张图片

  • 注意:在可视化界面使用压缩工具也能压缩成jar文件,但是一定要注意:只能在 io.cloudbeaver.resources.drivers.base_1.0.89.202401081229目录中进行压缩,不能在外层选择io.cloudbeaver.resources.drivers.base_1.0.89.202401081229文件夹进行压缩,这样压缩出来的jar文件结构是错误的!!! 

2.4、添加自定义数据库连接配置

  • 进入org.jkiss.dbeaver.ext.generic_2.3.208.202401081229文件夹中,编辑plugin.xml文件
cd org.jkiss.dbeaver.ext.generic_2.3.208.202401081229

vi plugin.xml

在任意标签位置的前或后添加以下信息:




	






	
	
	
	
	
	
	

dm.png在cloudbeaver中是不存在的(impala_icon.png是自带的),我们可以使用任意图片即可,我这里附上一个达梦数据库图标:往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第8张图片

如图:

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第9张图片

2.5、重新生成org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar文件

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 ../

3、添加自定义数据库驱动

  • 添加达梦与impala数据库驱动文件至指定目录中
达梦数据库
mkdir /usr/local/cloudbeaver/dm
cd /usr/local/cloudbeaver/dm

把达梦数据库驱动上传至该目录下(驱动在附件中,也可以在官网下载):

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第10张图片

impala数据库
mkdir /usr/local/cloudbeaver/impala
cd /usr/local/cloudbeaver/impala

impala的驱动很多,都需要上传至impala目录下:

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第11张图片

4、运行cloudbeaver

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:

  • cloudbeaver默认端口为8978,与宿主机8978端口一一映射

-v /usr/local/cloudbeaver/workspace:/opt/cloudbeaver/workspace

  • 把cloudbeaver容器中的/opt/cloudbeaver/workspace目录,挂载到宿主机的/usr/local/cloudbeaver/workspace目录
  • 这个目录很重要,用来存储cloudbeaver运行产生的数据文件等

-v /usr/local/cloudbeaver/drivers:/opt/cloudbeaver/drivers

  • 驱动挂载至宿主机中,方便以后我们对驱动进行维护

-v /usr/local/cloudbeaver/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf

  • 挂载cloudbeaver主配置文件,便于配置cloudbeaver

后面的2个jar挂载,是为了方便扩展自定义数据库连接

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第12张图片

5、访问cloudbeaver

我的访问地址为:http://192.168.168.171:8978

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第13张图片

初始化配置在这就不说了

新建下数据库连接,测试达梦或impala数据库是否支持:

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第14张图片

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)_第15张图片

自定义数据库连接添加成功!

如果连接达梦或impala失败,请检查:

  1. 自己上传的驱动版本是否支持??
  2. 网络是否开放?

你可能感兴趣的:(docker,linux,docker,容器,运维)