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

news2024/9/29 6:36:31

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

  • 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目录下的结构为:

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

docker rm bc

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 

解压后目录结构如下:

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数据库连接信息
<resource name="drivers/dm"/>
<resource name="drivers/impala"/>

<bundle id="drivers.dm" label="DM drivers"/>
<bundle id="drivers.impala" label="Impala drivers"/>

<driver id="generic:dm"/>
<driver id="generic:impala"/>

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

  • 注意:在可视化界面使用压缩工具也能压缩成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

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

<!-- 达梦数据库连接信息配置 -->
<driver
		id="dm"
		label="DM"
		icon="icons/dm.png"
		iconBig="icons/dm.png"
		class="dm.jdbc.driver.DmDriver"
		sampleURL="jdbc:dm://{host}[:{port}]/[{daStabase}]"
		defaultPort="5236"
		webURL="https://www.dameng.com/"
		description="达梦数据库连接选项!">

	<file type="jar" path="drivers/dm" bundle="drivers.dm"/>

</driver>

<!-- impala数据库连接信息配置 -->
<driver
		id="impala"
		label="Impala"
		icon="icons/impala_icon.png"
		iconBig="icons/impala_icon.png"
		class="com.cloudera.impala.jdbc41.Driver"
		sampleURL="jdbc:impala://{host}:{port}/{database}"
		defaultPort="25004"
		webURL="https://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-41.html"
		description="impala数据库连接选项!"
		supportedConfigurationTypes="MANUAL,URL"
		category="Hadoop"
		categories="hadoop">

	<file type="jar" name="ImpalaJDBC41.jar" path="drivers/impala" bundle="drivers.impala"/>
	
	<parameter name="query-get-active-db" value="select current_database()"/>
	<parameter name="query-set-active-db" value="use ?"/>
	<parameter name="string-escape-char" value="\"/>
	<parameter name="omit-catalog" value="true"/>
	<parameter name="supports-references" value="false"/>

</driver>

dm.png在cloudbeaver中是不存在的(impala_icon.png是自带的),我们可以使用任意图片即可,我这里附上一个达梦数据库图标:

如图:

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

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

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

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

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挂载,是为了方便扩展自定义数据库连接

5、访问cloudbeaver

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

初始化配置在这就不说了

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1395901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

卷级实时备份功能特点及应用场景

为满足部分对RTO和RPO指标敏感的用户需求&#xff0c;云祺科技通过结合卷远程复制技术和持续数据保护技术、以及高可用技术的原理&#xff0c;推出了一款基于卷为最小处理单元的实时容灾备份产品&#xff0c;其对于备份源对象具有良好的兼容性&#xff0c;无论是文件、影音、应…

json-server的基础使用

json-server 是什么? 用来快速搭建模拟的 REST API 的工具包 可以30秒内快速为我们搭建一个假的基于 REST API的服务 我们要如何使用呢&#xff1f; 1.先安装 //全局安装 npm i -g json-server 2.创建文件 db.json 我们需要在db.json放入一点内容 放入示例&#xff1a; {/…

带你解析Git的基础功能(三)

文章目录 前言一.远程仓库的概念二.远程仓库的操作2.1新建远程仓库2.2 克隆远程仓库2.3 向远程仓库推送2.4 拉取远程仓库2.5 忽略特殊⽂件2.6 标签管理 三.Git实战场景3.1 Git多人实战场景一准备工作由开发者1和开发者2新增加文件内容。将dev的文件合并到master上总结 3.2 Git多…

TypeScript实现一个贪吃蛇小游戏

游戏效果 文件目录 准备1&#xff1a;新建index.html&#xff0c;编写游戏静态页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-…

微店商品详情API(micro.item_get)的数据分析和挖掘

随着电商行业的迅猛发展&#xff0c;微店作为电商平台的重要组成部分&#xff0c;提供了丰富的API接口供开发者使用。其中&#xff0c;微店商品详情API&#xff08;micro.item_get&#xff09;是用于获取商品详情的接口&#xff0c;为数据分析和挖掘提供了大量有价值的数据源。…

域环境权限提升

Windows系统配置错误 在Windows系统中&#xff0c;攻击者通常会通过系统内核溢出漏来提权&#xff0c;但是如果碰到无法通过系统内核溢出漏洞法国提取所在服务器权限的情况&#xff0c;就会系统中的配置错误来提权。Windows系统中常见哦欸之错误包括管理员凭证配置错误&#x…

人才测评,招聘软件研发经理的胜任素质模型与任职资格

招聘软件研发经理的胜任素质模型和任职资格是确保能够招聘到胜任的人才的重要组成部分。以下是详细的说明&#xff1a; 一、胜任素质模型 1.技术能力 软件研发经理需要具备深厚的技术能力&#xff0c;对软件开发的各个方面有深入的理解和掌握。他们需要掌握多种编程语言和…

c# 视频播放之Vlc.DotNet.Forms

先说下优缺点 优点&#xff1a;与电脑无关&#xff0c;能播放主流编码格式视频。 缺点&#xff1a;只能播放本地视频&#xff0c;网络视频播放不了。 下面是具体操作和代码 1. 安装Vlc.DotNet.Forms 和 VideoLAN.LibVLC.Windows Vlc.DotNet.Forms 是播放库&#xff0c;Vid…

算法 动态分析 及Java例题讲解

动态规划 动态规划&#xff08;英语&#xff1a;Dynamic programming&#xff0c;简称 DP&#xff09;&#xff0c;是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的&#xff0c;通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适…

Ant Design Vue上传多个图片

模板代码&#xff1a; 定义变量&#xff1a; 文件限制的函数&#xff1a; 上传的函数&#xff1a; 样式函数&#xff1a; 完整代码&#xff1a; <template><div class"dialog-upload" v-if"showUploadDialog"><div class"dialog-uplo…

2018年认证杯SPSSPRO杯数学建模A题(第二阶段)海豚与沙丁鱼全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 基于聚类分析的海豚捕食合作策略 A题 海豚与沙丁鱼 原题再现&#xff1a; 沙丁鱼以聚成大群的方式来对抗海豚的捕食。由于水下光线很暗&#xff0c;所以在距离较远时&#xff0c;海豚只能使用回声定位方法来判断鱼群的整体位置&#xff0c;难…

python|写一个简单的http服务器

本篇文章的python版本为: 什么是http http是一个应用层协议&#xff0c;准确的来说是基于TCP/IP4层网络协议中的传输层中的TCP应用层协议。 额&#xff0c;4层模型大概是这样的: 在网络通信中&#xff0c;用户的数据是以报文来传输的&#xff0c;但是在实际通信中&#xff0…

密码学学习笔记(二十四):TCP/IP协议栈

TCP/IP协议栈的基础结构包括应用层、传输层、网络层、数据链路层和物理层。 应用层 应用层位于TCP/IP协议栈的最顶层&#xff0c;是用户与网络通信的接口。这一层包括了各种高级应用协议&#xff0c;如HTTP&#xff08;用于网页浏览&#xff09;、FTP&#xff08;用于文件传输…

【安全篇 / FortiGuard】(7.4) ❀ 02. 独立VDOM下的FortiGuard服务升级 ❀ FortiGate 防火墙

【简介】由于业务的需要&#xff0c;创建两个独立VDOM&#xff0c;每个VDOM有各自的宽带&#xff0c;但是FortiGuard服务却无法升级&#xff0c;有什么办法解决吗&#xff1f; VDOM概念 首先我们看看什么是VDOM。 ① VDOM将你的FortiGate划分为多个逻辑设备&#xff0c;并将一个…

深入理解Linux文件系统

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;晴る—ヨルシカ 0:20━━━━━━️&#x1f49f;──────── 4:30 &#x1f504; ◀️ ⏸ ▶️ ☰ &…

力扣精选算法100题——长度最小的子数组(滑动窗口专题)

本题链接——长度最小的子数组 第一步&#xff1a;了解题意 给定一个数组&#xff0c;要求在这个数组中找到一个必须是连续的子数组并且这个子数组每个元素加起来>target并从找到的这些数组中取一个最短的数组。 第二步&#xff1a;算法原理 滑动窗口是一种在序列&#xff…

【开源】基于JAVA语言的河南软件客服系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…

中仕公考:贵州省统一面向社会公开招录公务员公告

2024年1月22日至1月25日期间,每日10:00、14:00及19:00对报名情况进行更新,供报考者参考。 资格初审时间为2024年1月22日9:00至1月28日17:00。 网上缴费时间为2024年1月22日9:00至1月29日17:00。 打印准考证时间2024年3月11日9:00至3月14日17:00。 公共科目笔试时间为: 202…

深度学习(2)--卷积神经网络(CNN)

卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;是一种深度学习模型或类似于人工神经网络的多层感知器&#xff0c;常用来分析视觉图像。 一.卷积神经网络基础概念 传统网络是二维的&#xff0c;而卷积网络是三维的。 例如32x32x3的图片&#xff0c;在传…

Pure-admin框架 Pure-table中获取所选中的内容的信息

最近在尝试使用Pure-admin框架来进行开发&#xff0c;正好遇到了多选表格需要获取选中项的id的情况&#xff0c;因为平台介绍说是二次封装 element-plus 的 Table &#xff0c;直接拿el-table的方法来试 在table上设置属性ref"multipleTableRef" let idArr [];mult…