MySQL MGR 是一种基于组复制的高可用方案,它可以让多个 MySQL 服务器组成一个复制组,实现数据的一致性和容错性。MGR 有两种模式,单主模式和多主模式。单主模式下,只有一个服务器可以接受写操作,其他服务器只能接受读操作。多主模式下,所有服务器都可以接受写操作,但是需要解决可能的冲突和不一致。
要配置 MGR 的单主模式,你需要按照以下的步骤进行:
- 准备至少三台 MySQL 服务器,确保它们的版本是 5.7.17 或以上,且具有相同的数据和配置。
- 在每台服务器上,安装 group_replication 插件,设置 group_replication_group_name,group_replication_local_address,group_replication_group_seeds,group_replication_bootstrap_group,group_replication_single_primary_mode,group_replication_enforce_update_everywhere_checks 等参数,具体的参数值可以参考这篇文章。
- 在其中一台服务器上,设置 group_replication_bootstrap_group 为 on,然后执行 start group_replication 命令,初始化组复制。
- 在其他服务器上,设置 group_replication_bootstrap_group 为 off,然后执行 start group_replication 命令,加入组复制。
- 在每台服务器上,检查 replication_group_members 表,确认组复制的状态和角色,其中只有一个服务器的 role 为 PRIMARY,其他服务器的 role 为 SECONDARY。
- 在 PRIMARY 服务器上,执行 create user 和 grant 命令,创建一个用于组复制的用户,并授予 REPLICATION SLAVE 权限。
- 在每台服务器上,执行 change master to 命令,指定组复制的用户和密码,以及 master_auto_position 为 1。
- 在每台服务器上,执行 start slave 命令,启动复制线程。
- 在每台服务器上,检查 slave status,确认复制的状态和延迟。