MySQL InnoDB Cluster 部署说明
本文说明如何使用 innodb_cluster.yml 部署 MySQL 8.4 InnoDB Cluster。
1. 适用范围
- 目标架构:三节点 InnoDB Cluster
- 数据库类型:
db_type: mysql - MySQL 版本:
8.4.x - 管理工具:MySQL Shell
2. inventory
innodb_cluster.yml 使用独立主机组:
[dbbot_innodb_cluster]
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/common_config.yml:
db_type: mysql
mysql_version: "8.4.7"
mysql_port: 3307
如果你暂时沿用 dbbot 公开默认密码做实验,请显式设置 fcs_allow_dbbot_default_passwd: true。默认值是 false,会在部署前拦截公开默认密码。
编辑 mysql_ansible/playbooks/vars/var_innodb_cluster.yml:
innodb_cluster_name: "myCluster3307"
innodb_cluster_primary: 192.0.2.131
innodb_cluster_members:
- 192.0.2.131
- 192.0.2.132
- 192.0.2.133
说明:
innodb_cluster_primary必须包含在innodb_cluster_members中。innodb_cluster_members至少 3 个节点。mysql_mgr_port默认按mysql_port * 10 + 1自动计算。
4. 安装包准备
至少准备:
- MySQL
8.4.x二进制包 - MySQL Shell 安装包,或允许控制节点自动下载
如果你使用离线包,请放到 mysql_ansible/downloads/。
5. 执行部署
cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook innodb_cluster.yml
执行过程中按提示输入 confirm。
6. 部署后验证
在主节点或任一已安装 mysqlshell 的节点执行:
mysqlsh clusteradmin@192.0.2.131:3307
登录后执行:
var cluster = dba.getCluster()
cluster.status()
验证要点:
status返回OK/ONLINE- 三个成员均在线
primary节点与配置一致
7. 常见注意事项
innodb_cluster.yml只支持 MySQL8.4.x。db_type只能是mysql,不能是percona或greatsql。- 建议先完成基础连通性检查:
ansible dbbot_innodb_cluster -m ping - 如果后续需要应用接入,再继续部署 MySQL Router。