MySQL MHA 部署说明
本文说明 mha.yml 的支持边界和基础使用方式。
1. 支持边界
- 当前仅按
CentOS 7 / Red Hat 7环境维护 - 目标架构:一主多从 + MHA Manager
- 适用版本:MySQL
5.7
mha.yml 属于传统高可用方案。对于新建集群,优先建议使用 MGR 或 InnoDB Cluster。
192.168.161.* 是 dbbot 默认三节点回归网段,不等同于传统 MHA 专项环境。若要验证 mha.yml,请单独准备 CentOS 7 或 Red Hat 7,并使用 MySQL 5.7。
2. inventory 与角色
mha.yml 仍然使用 [dbbot_mysql] 主机组,实际角色通过变量区分:
[dbbot_mysql]
192.0.2.131 ansible_user=root ansible_ssh_pass="'密码'"
192.0.2.132 ansible_user=root ansible_ssh_pass="'密码'"
192.0.2.133 ansible_user=root ansible_ssh_pass="'密码'"
3. 关键变量
编辑 mysql_ansible/playbooks/vars/var_mha.yml:
master_ip: 192.0.2.131
slave_ips:
- 192.0.2.132
- 192.0.2.133
manager_ip: 192.0.2.133
vip: 192.0.2.130
vip_netmask: "32"
net_work_interface: ens33
说明:
manager_ip不能与master_ip相同manager_ip应放在从库节点上vip、vip_netmask、net_work_interface需要与实际网络环境一致ens33只是示例网卡名。执行 VIP 相关剧本前请先用ip route或ip addr确认真实网卡;dbbot192.168.161.*默认测试 inventory 中的样例环境通常是enp1s0,但传统 MHA 仍必须使用CentOS 7或Red Hat 7专项环境验证。
4. 执行入口
cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook mha.yml
5. 卸载
mha_unsafe_uninstall.yml 会先停止传统 MHA manager、删除配置的 VIP 和 MHA 运行文件,再按当前 mysql_port 清理 MySQL 实例数据、日志和运行目录:
cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook mha_unsafe_uninstall.yml
执行过程中按提示输入 confirm。如需在非交互场景执行,请追加 -e dbbot_confirmation_input=confirm。
默认不会删除 MHA RPM 包。如确需删除 mha4mysql-manager / mha4mysql-node RPM,可追加 -e '{"mha_uninstall_remove_packages": true}'。
6. 注意事项
mha.yml当前文档只覆盖CentOS 7和Red Hat 7使用前提。- 不满足
CentOS 7/Red Hat 7与 MySQL5.7条件的三节点回归环境会被mha.yml前置校验拦截,属于预期行为。 - 如果你在其他发行版上使用,需要先自行验证 Perl 依赖和 MHA RPM 兼容性。
- 失败后如需重跑,建议先确认 MHA Manager 配置、VIP 状态和 MySQL 实例状态,再决定是否清理残留文件。