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处位置添加对应内容:
<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"/>
#压缩当前目录下的所有文件为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
在任意<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是自带的),我们可以使用任意图片即可,我这里附上一个达梦数据库图标:
如图:
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失败,请检查: