近期 #MySQL OCP 认证活动爆火,据说全球上万人在备考,很多人已经成功上岸。我曾经花费上万巨资拿到三个版本的 MySQL OCP (5.6/5.7/8.0),现在考只需要零投入,真为这茬考生感到高兴。在我的微信群里看到很多小伙伴已经顺利通过认证,本着“多一分浪费”的原则,还有几位控分高手晒出了压线过的精准成绩。
数据库是一门科研与实践并存的学科,通过认证只能说明掌握了基础的理论知识,还需要多多上手实践。MySQL 正是以其简单易上手的风格风靡全球,深受开发者们的喜爱,今年正值 MySQL 30 周年,它依然是全球最流行的开源数据库。在我看来,它是除了 Excel 之外最易用的数据库,无论是单片机、个人 PC,还是企业级服务器,均可使用 MySQL 作为数据存储。
MySQL Workbench 是 MySQL 官方推出的可视化工具,它集成了数据建模、SQL 开发以及服务器配置、用户管理、可视化性能面板、数据迁移等全面的管理功能。但该工具出品已近 20 年,近几年已不再新增功能。对 MySQL 版本兼容性也逐渐暴露出问题,由于内置 OpenSSL 版本的问题,老版本 MySQL Workbench 连接新版本 MySQL 会遇到问题,新版本 MySQL Workbench 连接老版本 MySQL 也会遇到问题。更让人头疼的是,它默认使用 REPEATABLE READ
事务隔离级别且无法修改,简直是“祖传老古董”。
至于其他 GUI 工具,比如 Navicat、JetBrains DataGrip、DBeaver,虽然能运行在 Windows、Mac OS、Linux,但对国产操作系统支持欠缺。好在,我们遇到了 SQLark 百灵连接,一款更懂信创数据库的数据库开发工具,好用、好看。
01 SQLark 介绍
#SQLark 百灵连接是由 #达梦数据 (688692)推出的数据库开发和管理工具,专为信创应用开发者设计,帮助他们更高效、便捷地进行数据库管理和开发。它可以轻松连接 #达梦数据库、#Oracle、MySQL、#PostgreSQL 等数据库,并支持迁移到达梦数据库。
SQLark 曾是达梦内部专家的“保留利器”,现已对外公布,可免费下载。以下是其主要发版历史:
-
2023 年 5 月,SQLark V1.0 正式发布,支持 DM 7.0 及以上、 Oracle 11g 及以上数据库。 -
2023 年 9 月,SQLark V1.3.5 发版, 数据生成 功能上线,可快速批量生成千万级/亿级仿真表数据。 -
2023 年 11 月,SQLark V1.4 发版,新增支持达梦 命令行 终端,用户无需登录服务器即可调用 disql
。 -
2024 年 6 月,SQLark V2.4 发版,新增支持 MySQL 数据库。 -
2024 年 7 月,SQLark V2.5 发版,新增 ER 图 功能,支持逆向生成 ER 图,自动生成 ER 图分组,导出 ER 图为图片或表设计文档。 -
2024 年 10 月,SQLark V3.0 发布,新增执行计划分析模式,增加生产环境水印标记。 -
2024 年 10 月 24 日,程序员节当天 SQLark 正式对外发布,上线 24 小时新增用户超过 1000。 -
2025 年 2 月,SQLark V3.3 发版,支持 Oracle 到 DM 断点续迁,可轻松迁移单表上亿行数据、超过 100GB 的企业级项目。 -
2025 年 4 月,SQLark V3.4 发版,新增支持 PostgreSQL 数据库。至此,SQLark 已支持全球数据库流行度排行榜前四位中的三款,其它主流数据库在规划中。
02 使用 SQLark 连接到 MySQL
下面主要介绍如何使用 SQLark 对 MySQL 进行开发管理,环境准备仅做简要介绍。
1. 准备操作系统 Rocky Linux 9
[root@sqlark ~]# hostnamectl
Static hostname: sqlark.shawnyan.cn
Operating System: Rocky Linux 9.5 (Blue Onyx)
Kernel: Linux 5.14.0-503.34.1.el9_5.x86_64
Architecture: x86-64
[root@sqlark ~]#
2. 安装 SQLark V3.4 Linux 版
执行 dnf
命令安装 SQLark。
dnf install SQLark_V3.4_linux_x86_64.rpm
查看安装目录。
[shawnyan@sqlark ~]$ ll -h /opt/sqlark/
total 227M
drwxr-xr-x 3 root root 18 May 28 14:36 data-migrate
-rw-r--r-- 1 root root 10M Apr 14 11:08 icudtl.dat
-rwxr-xr-x 1 root root 247K Apr 14 11:08 libEGL.so
-rwxr-xr-x 1 root root 2.6M Apr 14 11:08 libffmpeg.so
-rwxr-xr-x 1 root root 6.7M Apr 14 11:08 libGLESv2.so
-rwxr-xr-x 1 root root 4.6M Apr 14 11:08 libvk_swiftshader.so
-rwxr-xr-x 1 root root 6.5M Apr 14 11:08 libvulkan.so.1
-rw-r--r-- 1 root root 1.1K Apr 14 11:08 LICENSE.electron.txt
-rw-r--r-- 1 root root 9.1M Apr 14 11:08 LICENSES.chromium.html
drwxr-xr-x 2 root root 40 May 28 14:37 locales
drwxr-xr-x 3 root root 22 May 28 14:36 plugins
drwxr-xr-x 5 root root 80 May 28 14:37 resources
drwxr-xr-x 8 root root 4.0K May 28 14:37 server
-rwxr-xr-x 1 root root 178M Apr 14 11:08 sqlark
执行 sqlark
命令启动客户端。
3. 启动 MySQL EE 8.4.5 容器
podman run --name=mysql84 \
--restart on-failure \
-e MYSQL_ROOT_PASSWORD=root -e MYSQL_ROOT_HOST='%' \
-p 3306:3306 \
-d container-registry.oracle.com/mysql/enterprise-server:8.4.5
连接到 MySQL 数据库,查看版本信息。
[shawnyan@sqlark ~]$ podman exec -it mysql84 mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.4.5-commercial MySQL Enterprise Server - Commercial
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h'forhelp. Type '\c' to clear the current input statement.
mysql> select @@version,@@version_comment;
+------------------+--------------------------------------+
| @@version | @@version_comment |
+------------------+--------------------------------------+
| 8.4.5-commercial | MySQL Enterprise Server - Commercial |
+------------------+--------------------------------------+
1 row inset (0.00 sec)
mysql>
4. 使用 SQLark 连接到 MySQL 数据库
在 SQLark 客户端,新建连接,数据库类型选择 MySQL,SQLark 默认使用 MySQL 8.0 驱动,也可以自行上传其他版本的驱动(如 mysql-connector-j-9.3.0.jar
)。
连接成功后,可以看到清晰的生产环境水印,提示用户谨慎操作。
5. 连接分组管理
SQLark 支持对连接进行“分门别类”,例如按数据库类型、项目名称、环境进行分组,还可将连接信息导出为 XML 文件进行备份或分享。
03 使用 SQLark 操作 MySQL
下面从创建用户、创建表格、生成数据、导入数据、数据查询、数据编辑等 6 个方面演示如何使用 SQLark 操作 MySQL。
1. 创建用户
从 MySQL 8.0.14 开始,支持账户双密码管理,用户可以保留旧密码,并创建新密码,待应用程序中的旧密码全部替换完成后,再停用旧密码,实现密码高效管理。
示例:在 SQLark 中创建用户 sqlark
,并赋予初始密码。
CREATE USER sqlark IDENTIFIED with mysql_native_password BY '123';
为用户创建新密码并保留旧密码。
ALTER USER sqlark IDENTIFIED with mysql_native_password BY 'abc' RETAIN CURRENT PASSWORD;
查看用户的双密码。
SELECT User, Host, authentication_string as passwd_new, json_value(User_attributes, '$.additional_password') as passwd_old
FROM mysql.user WHERE user = 'sqlark';
复制当前连接,验证新旧密码均可正常连接。
2. 创建表格
创建测试库 mytest
以及测试表 customer
。
当一次执行多条语句时,消息中的 SQL 语句可点击定位到原位置。
SQLark 新版本还支持字段排序,当创建或修改表结构时,通过拖拽或快捷键 Ctrl + ↑/↓
调整字段顺序,让表结构设计更灵活。
3. 生成数据
在复现某些 SQL 性能问题时,时常需要在开发测试环境生成仿真数据,以往我们都是“手搓”存储过程或者用脚本生成,又笨又慢。但是用了 SQLark 的数据生成功能就解放了双手,SQLark 提供了一系列的数据生成规则,已覆盖大部分需求场景,可根据字段名称和数据类型,自动识别匹配需要生成什么样的数据。
在数据生成页输入待生成行数时,提供数量级提示功能,当生成行数达到百万、千万、亿等量级时,输入过程中将自动提示相应单位,便于进行数量级的校验和确认。
经测试,同样的表结构生成百万行数据,使用 Nxx 工具耗时 30 分钟,而 SQLark 不到 30s,大大节省了测试时间。当需要对表进行反复测试时,在生成数据前,勾选“生成数据前清空表”选项,SQLark 会先对该表执行 TRUNCATE
操作,再执行 INSERT
操作。从 MySQL 的 General log 可看到操作记录。
2025-05-28T18:15:40.324347Z 145 Query truncate table `mytest`.`customer`
2025-05-28T18:15:40.337045Z 145 Prepare INSERT INTO `mytest`.`customer` (`store_id`,`first_name`,`last_name`,`email`,`address_id`,`active`,`create_date`,`last_update` ) VALUES (?,?,?,?,?,?,?,?)
2025-05-28T18:15:40.337528Z 145 Query SET autocommit=0
2025-05-28T18:15:40.544532Z 145 Execute INSERT INTO `mytest`.`customer` (`store_id`,`first_name`,`last_name`,`email`,`address_id`,`active`,`create_date`,`last_update` ) VALUES ('1','孙娅凝','祁晴娴','yuxia395@gmail.com','1',6,'1992-09-30 19:34:00','2005-05-14 21:29:42')
2025-05-28T18:15:40.544862Z 145 Query COMMIT
4. 导入数据
还有很多场景直接使用已经准备好表定义和数据集,比如项目经理在客户内网搭建 POC 环境,此时可以使用 SQLark 连接数据库,对业务库进行数据初始化。SQLark 支持将 Excel/CSV/TXT/JSON/XML 格式文件的数据导入至目标表,目前数据导入 CSV/TXT/JSON/XML 格式的文件,大小已支持 100M。数据导入时还可选择批量提交行数(默认 1000 行),对于 MySQL 而言,不建议设置过大,避免大事物引起的复制延迟。
5. 查询数据
数据导入成功后,我们来查看表数据。数据浏览页面除了常规分页,总行数显示(点击总条数可刷新数据),还提供 WHERE
和 ORDER BY
输入框,用户无需新开查询页面,可在当前页面完成单表条件过滤。点击右上角的“转置”按钮可以一键行列转换。
SQLark 浏览数据时,支持解析 BLOB 字段中的 image/png/jpg/gif 等图像文件,以及 txt/csv 文本文件。
还可在“单元格编辑器”上传、下载对象,文本展示支持自动换行。
SQLark 还有一个让查询效率翻倍的高亮特性,支持常用代码块的缩写。常用代码段可在“菜单栏 | 配置 | 首选项 | SQL 编辑器 | 常用代码段”进行设置。SQLark 已经内置了一些常用 SQL,这里增加几条自定义缩写。
6. 编辑数据
使用 SQLark 查询 JSON/XML 数据时,支持在单元格编辑器对数据进行格式化,并且支持在线编辑,保存后自动更新数据库,无需手动拼接 SQL 语句。
04 从 MySQL 迁移数据到 DM
SQLark 支持 MySQL 到 DM 的数据迁移。迁移评估环节可分析数据库对象、大表、大字段表等迁移重难点,检查源库保留字、关键字冲突等语法兼容性问题,生成准确的改造工作量和迁移策略,提升迁移成功率。数据迁移环节按照对象间的依赖关系顺序迁移表结构、函数、存储过程、表数据、视图等,并对迁移效果进行一致性验证。
为演示 SQLark 数据迁移功能,需要准备 DM 8 数据库作为目标数据库。
[shawnyan@sqlark ~]$ /home/shawnyan/dmdbms/bin/disql SYSDBA
password:
Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 27.455(ms)
disql V8
SQL> select banner from v$version;
LINEID BANNER
---------- ---------------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000d
3 03134284368-20250430-272000-20149
4 Msg Version: 43
5 Gsu level(5) cnt: 0
used time: 1.935(ms). Execute id is 8501.
源数据库为上文准备的 MySQL,迁移测试库 sqlarkdb
。只需按照页面提示,即可轻松完成数据迁移。
05 总结
SQLark 作为一款功能强大的数据库开发工具,支持多种数据库,具备便捷的连接管理、高效的数据操作、智能的代码提示、丰富的数据导入导出等功能,为开发者提供了全方位的数据库操作体验。无论是初学者还是资深架构师,或是数据分析师,都能从中受益。想让信创数据库开发和管理变得更简单、更高效么?别再用那些“祖传老古董”了,来试试 SQLark 吧!
参考阅读
Have a nice day ~ ☕
👉 这里可以找到我
👉 这里有得聊
如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。 关注微信公众号:少安事务所,后台回复[群],即可看到入口。
如果这篇文章为你带来了灵感或启发,请帮忙『三连』吧,感谢!ღ( ´・ᴗ・` )~
本文分享自微信公众号 - 少安事务所(mysqloffice)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。