TiDB 生态效率神器:dbops 一键搞定 MySQL 部署,测试迁移再也不头疼
#
在 TiDB 项目实践中,大家常会遇到这类需求:比如验证 MySQL 到 TiDB 的迁移效果、测试 DM(数据迁移工具)同步能力 —— 而这些场景都离不开上游 MySQL 环境的支撑。但手动部署 MySQL 实在太繁琐了:要装依赖、改配置、调参数,稍有疏忽就会踩坑,重复操作更是浪费时间。
好在 TiDB 生态里有个「效率黑科技」——dbops 工具集,它专门针对 MySQL 部署做了自动化封装,从环境初始化到实例启动,全程脚本化操作,新手也能轻松上手。今天就带大家一步步玩转 dbops,快速搭建 MySQL 测试环境。
一、先搞清楚:dbops 需要什么环境?
在开始前,先确认目标主机满足以下基础条件,避免后续踩坑:
系统架构:Linux x86_64(dbops 二进制包仅支持该架构,CentOS 7/8、Ubuntu 18.04 + 都适用)
权限要求:能通过 SSH 直连目标主机,且登录用户具备
root
权限或sudo
权限(需要操作系统级配置)依赖组件:主机已安装 Python 3(一般系统默认自带,可通过
python3 --version
验证)
二、第一步:下载并解压 dbops 工具包
dbops 提供预编译的二进制包,直接下载解压即可,无需编译。这里以当前稳定版1.11.20250429
为例(若需更新版本,可去dbops Gitee 仓库查看最新版):
bash
解压完成后,会在/usr/local/
下生成dbops
目录,工具的核心脚本都在这里面。
三、第二步:初始化内置 Ansible(解决兼容性问题)
dbops 的自动化部署依赖 Ansible,但不同环境的 Ansible 版本可能冲突。好在 dbops 内置了「Portable Ansible」(便携版),无需单独安装,只需执行初始化脚本即可:
bash
正常输出会类似这样:ansible [core 2.12.x]
,说明 Ansible 环境已就绪。
四、第三步:配置目标主机与 MySQL 参数
dbops 通过配置文件指定「部署哪里」和「部署什么样的 MySQL」,核心是两个文件:hosts.ini
(主机清单)和common_config.yml
(MySQL 参数)。
1. 配置主机清单:告诉 dbops 要部署到哪台机器
编辑hosts.ini
文件,添加目标 MySQL 节点的信息:
bash
在文件中添加如下内容(根据实际环境修改 IP、用户名和密码):
ini
小贴士:如果密码包含特殊字符(如
!@#
),一定要用单引号包裹,避免解析错误。
2. 自定义 MySQL 参数:版本、端口等
如果需要修改 MySQL 的默认配置(比如版本、端口),编辑common_config.yml
文件:
bash
关键参数说明(根据需求修改):
yaml
3. 可选:突破 MySQL 版本限制(针对 1.11 版本)
dbops 1.11.20250429
版本默认只支持部署 MySQL 8.0.28 及以上,如果需要部署 8.0.24 这类低版本,需要手动修改两处配置,避免参数校验失败:
(1)修改版本校验规则
bash
找到如下行,将8.0.28
改为目标版本(如8.0.24
):
yaml
(2)注释低版本不兼容的参数
低版本 MySQL(如 8.0.24)没有performance_schema_consumer_events_statements_cpu
等参数,若不注释会导致启动失败:
bash
找到如下两行,在前面加#
注释:
ini
五、一键部署 MySQL:支持多架构
dbops 支持多种 MySQL 架构,覆盖不同测试场景,核心部署脚本都在playbooks
目录下:
single_node.yml
:单实例 MySQL(最常用,适合简单测试)master_slave.yml
:主从架构(测试数据同步)mha.yml
:MHA 架构(测试高可用切换)mgr.yml
:MGR 架构(测试组复制)
这里以「单实例部署」为例,执行如下命令:
bash
部署过程会自动完成「依赖安装、MySQL 下载、配置初始化、服务启动」等操作,耐心等待即可。判断部署成功的标准:输出日志中没有failed=1
的提示,只有ok
和changed
。
六、登录验证:确认 MySQL 实例正常
部署成功后,dbops 提供了「快捷登录命令」,无需手动输入端口和密码,非常方便:
bash
若成功登录,会看到 MySQL 欢迎信息,类似这样:
plaintext
此时可以执行select version();
验证 MySQL 版本,或show databases;
查看默认数据库,确认实例正常运行。
最后:好消息!新版本已支持低版本 MySQL
我之前给 dbops 作者提了「支持 MySQL 8.0.21~8.0.27」的需求,目前作者已在dbops.1.12.20250529
版本中实现了该功能。如果你的需求是部署这些低版本 MySQL,直接下载最新版 dbops 即可,无需手动修改版本校验和配置模板,更省心。
总结
dbops 作为 TiDB 生态下的 MySQL 部署工具,最大的优势就是「自动化」和「兼容性」:内置 Ansible 解决环境冲突,脚本化操作减少手动失误,还支持多架构部署,完美匹配 TiDB 迁移测试、DM 工具验证等场景。如果你也常被手动部署 MySQL 的繁琐困扰,不妨试试 dbops,效率会提升不少!
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/502b6b093488c5fe1cd527cd9】。文章转载请联系作者。
评论