Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • OpenClaw
  • Hermes Agent
  • Claude Code
  • MySQL8-SOP手册
  • MySQL实战45讲学习笔记
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • OpenClaw
  • Hermes Agent
  • Claude Code
  • MySQL8-SOP手册
  • MySQL实战45讲学习笔记
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

    • MySQL 运维知识地图:从入门配置到高可用排障
    • MySQL8 配置文件 my.cnf 重要参数解读
    • MySQL 导出 CSV 中文乱码:字符集链路从头讲一遍
    • MySQL 角色管理
    • MySQL网络抓包审计
    • MySQL 性能压测:Sysbench 1.0 实战
    • MySQL Router 实现读写分离
    • Gh-ost重建表,清除表碎片率
    • MySQL MGR配合MySQL-router实现innodb-cluster
      • MGR 部署
        • my.cnf配置参数
        • 1.先创建一个用户
        • 再进行授权
        • 2.安装插件
        • 3.配置master实例
      • Q&A
    • MySQL 快速分析binlog定位问题
    • MySQL执行计划分析
    • DBA常用SQL和命令整理备查
    • 单表数据同步方案选型:为什么不该用 mysqldump 做「实时同步」
    • MySQL的事务隔离级别
    • MySQL存储过程批量生成数据
    • MySQL insert on duplicate key update,replace into , insert ignore的理解
    • MySQL不同字符集之间的区别和选择
    • MySQL为什么有时候会选错索引
    • MySQL死锁问题
    • MySQL使用SQL语句查重去重
    • MySQLdump逻辑备份
    • MySQL 基于 GTID 主从复制:跳过异常事务的正确姿势
    • MySQL8快速克隆插件使用指南
    • MySQL8双1设置保障安全
    • MySQL锁
    • innodb cluster安装
    • OPTIMIZE TABLE 和 ANALYZE TABLE 的区别:用实测数据说话
    • MySQLReplicaSet 安装
    • 脚本实现MySQL ReplicaSet 高可用
    • MySQL 的 Left join、Right join 和 Inner join 的区别
    • ORDER BY 配合 LIMIT 触发的索引选择陷阱
  • Redis

  • Keydb

  • TiDB

  • MongoDB

  • Elasticsearch

  • Kafka

  • victoriametrics

  • BigData

  • Sqlserver

  • 数据库
  • MySQL
Carry の Blog
2022-03-10
目录

MySQL MGR配合MySQL-router实现innodb-cluster原创

版本说明

本文写于 2022-03,基于 MySQL 8.0 Group Replication。
MGR 的核心机制(Paxos 协议、单主/多主模式)未变,经 2026-07 复核仍适用;8.0 后续小版本对 MGR 的自动化运维(如 group_replication_communication_stack 参数、Clone 插件配合分布式恢复)有增强,新部署建议一并核对官方最新文档。

# MGR 部署

# my.cnf配置参数

单主配置

#--- group replication settings ---
plugin-load = "group_replication.so"
transaction-write-set-extraction = XXHASH64
report_host = 172.16.0.83
binlog_checksum = NONE
loose_slave_preserve_commit_order = on 
loose_group_replication = FORCE_PLUS_PERMANENT
loose_group_replication_group_name = "f0d9e877-661b-487c-a955-7fae37a5c2bd"
loose_group_replication_compression_threshold = 100000       # mysql8.0.11后默认值为1000000字节,1M
loose_group_replication_flow_control_mode = 0
loose_group_replication_single_primary_mode = 1
loose_group_replication_transaction_size_limit = 331350016
loose_group_replication_member_expel_timeout = 20
loose_group_replication_unreachable_majority_timeout = 20
loose_group_replication_start_on_boot = off
loose_group_replication_local_address = '172.16.0.83:23502' #端口跟mysql端口不同即可
loose_group_replication_group_seeds = '172.16.0.82:23501,172.16.0.83:23502,172.16.0.84:23503'
loose_group_replication_ip_whitelist= '172.16.0.0/20'
loose_group_replication_bootstrap_group = off		
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

多主配置

##--- group replication settings 多主模式---
plugin-load = "group_replication.so"
transaction-write-set-extraction = XXHASH64
report_host = 172.16.0.87
binlog_checksum = NONE
loose_slave_preserve_commit_order = on 
loose_group_replication = FORCE_PLUS_PERMANENT
loose_group_replication_group_name = "00000000-0000-0000-0000-000000000000"
loose_group_replication_compression_threshold = 100000       # mysql8.0.11后默认值为1000000字节,1M
loose_group_replication_flow_control_mode = 0
loose_group_replication_single_primary_mode = 0
loose_group_replication_enforce_update_everywhere_checks = ON # 比单主多了这一行
loose_group_replication_transaction_size_limit = 331350016
loose_group_replication_member_expel_timeout = 20
loose_group_replication_unreachable_majority_timeout = 20
loose_group_replication_start_on_boot = off
loose_group_replication_local_address = '172.16.0.87:23306'
loose_group_replication_group_seeds = '172.16.0.87:23306,172.16.0.88:23306,172.16.0.89:23306'
loose_group_replication_ip_whitelist= '0.0.0.0/20'
loose_group_replication_bootstrap_group = off	
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 1.先创建一个用户

create user 'repl'@'172.16.0.%' identified by 'xxxxxxxxx';
1

# 再进行授权

grant REPLICATION SLAVE on *.* to 'repl'@'172.16.0.%' ;
1

# 2.安装插件

install plugin group_replication soname 'group_replication.so';
1
show plugins;
1
select * from INFORMATION_SCHEMA.PLUGINS where PLUGIN_NAME like '%group_replication%';
1
INSTALL PLUGIN clone SONAME 'mysql_clone.so';		#可选
1

# 3.配置master实例

1)查看当前的group replication相关参数是否配置有误

show global variables like 'group%';
1

2)启动 group_replication_bootstrap_group

SET GLOBAL group_replication_bootstrap_group=ON;
1

3)配置MGR

set global  group_replication_ip_whitelist='10.100.101.0/20';
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='EKxxxxxxxxxxxdgJ' FOR CHANNEL 'group_replication_recovery';
1
2

4)启动MGR

start group_replication;
1

5)关闭 group_replication_bootstrap_groups

SET GLOBAL group_replication_bootstrap_group=OFF;
1
select * from performance_schema.replication_group_members;
1

# Q&A

show global variables like '%gtid%' ;
set @@GLOBAL.GTID_PURGED='aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-1006103';
1
2
#MySQL
上次更新: 8/7/2026

← Gh-ost重建表,清除表碎片率 MySQL 快速分析binlog定位问题→

最近更新
01
Browserless 使用笔记:把 Chrome 变成一个可以被并发调用的网络服务
08-07
02
ORDER BY 配合 LIMIT 触发的索引选择陷阱 原创
08-07
03
Nginx 运维知识地图:从配置基础到反向代理实战 原创
07-29
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式