【导语】DBeaver是一款跨平台的数据库工具,界面友好,支持主题设置,关键字高亮,支持导出er图,支持多种数据库,企业版支持nosql数据库。
简介
你在日常开发工作中,对于数据库的使用,是否使用了不同的客户端工具?Oracle使用Sqldeveloper?MySQL使用Navicat?Redis使用AnotherRedisManager?或者苦苦寻找破解的工具?想象一下,如果有一个客户端,可以同时支持以上多种数据库,并且还具有非常易用、酷炫的界面,关键还开源、免费,是不是会勾起你的好奇心?就这样,DBeaver成功地引起了我的注意。
DBeaver是一款免费开源的数据库工具,支持多种不同数据库,分为社区版(免费)和企业版(付费)。社区版的连接基于jdbc,也就是支持所有具有jdbc驱动的数据库,如MySQL、Oracle等,企业版除了具有社区版的功能外,还支持多种NoSQL数据库,如MongoDB、Redis等。
这个开源项目的地址是:
https://github.com/dbeaver/dbeaver!
我个人实际试用的体验非常好,操作方便、界面友好。
下载安装
下载地址是:
源码地址是:
https://github.com/dbeaver/dbeaver
我选择了Windows平台下载社区版ZIP包,版本是7.2.3,解压就能使用,以下介绍基于此,同时使用MySQL作为全文演示的目标数据库。解压后双击dbeaver.exe就能使用。这里我只介绍DBeaver几个我认为比较常用,并且其他工具不好用或者没有的功能,像编辑sql语句做CRUD操作这种常规功能就不做介绍了。
(但是实际使用起来,DBeaver的SQL提示功能更友好,会自动帮你起表别名等,并且支持SQL语句格式化,建议还是亲自上手试试,这里不做详细介绍)
修改主题
目前DBeaver支持的主题类型不多,但是程序员非常喜欢的暗黑主题已经有了,界面的风格和Jetbrain的开发工具十分相似,作为开发者,我是很有亲切感的。
设置主题的地方在窗口-首选项-常规-外观:
连接MySQL
连接MySQL的过程和普通的数据库工具,输入ip、数据库名、用户名密码、测试,完成。
这里如果是第一次连接某种数据库,会有一个下载jdbc驱动包的过程,是自动的,但是需要等待一会。创建之后就可以正式使用DBeaver的功能了。
Blob字段显示
DBeaver支持在查询结果窗口中,将二进制数据做Hex或Base64编码显示,并且还能导出,这提供了很大的便利。在实际开发中,保存在数据库的二进制数据,在网络中传输中通常都是需要做Hex或Base64编码的。如果我们直接查询数据库,就需要将查询结果的二进制数据复制保存,再手工转化为Hex或Base64编码。有了DBeaver,显示和导出都能做到二进制数据的编码了。
Blob字段转换
选中数据行-右键-显示/格式-binaryFormat-String/Hex/Base64,可以选择Hex或Base64编码。
Blob字段导出
Blob字段导出时,可以选择不导出该字段,导出到文件,或者以Hex或Base64编码导出。以导出CSV文件为例。
导出Blob字段为空
选中数据行-右键-导出结果集
导出到文件
导出为Base64编码
导出为Hex编码
导出ER图
DBeaver支持导出ER图。通常我们开发一个新系统,经常会对数据库修修改改,迭代开发过程中也会有一些调整,导致数据库表结构、字段可能和最初的设计不一样,ER图自然也处在不断更新变化中,而DBeaver支持导出ER图,那不管数据库如何变化,我们只需要一键导出就能生成ER图,生成设计文档,是不是很方便?
DBeaver生成ER图也很简单,双机目标数据库,右边窗口会新建一个tab,展示数据库表及生成ER图选项。
导出ER图。注意下图导出按钮的位置:
导出生成的图就是这样子,是不是很方便?
数据比对
选中需要比较的数据库或者表,再点击工具栏的数据库->Compare/Migrate->Simple compare,根据自己的需要按提示点击比较即可,比较结果可以保存成文件或者直接打开浏览器显示页面。
监控
DBeaver还支持对数据库的监控,不管是线上环境还是开发环境,这都是极其有用的一个功能。打开监控面板的方法也很简单,选中数据库-右键-工具-Open DashBoard。监控的内容包括数据库流量、数据读写、数据查询次数、会话数等。(不同的数据库监控的内容不一样,这里以MySQL为例)
扩展
DBeaver还支持插件扩展,类似Eclipse或IDEA插件,可以从插件市场下载插件安装到DBeaver中,操作方法和步骤和Eclipse、IDEA简直一模一样,无缝衔接,这里也不详细展开了。
开源前哨
日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。