1. 主从模式的部署步骤
目标:部署一个有3台主机的单主模式的MySQL分组。
Primary:192.168.197.110。
Secondary:192.168.197.111。
Secondary:192.168.197.112。
MySQL端口:3306,MySQL分组复制端口:33061。
(1)主机192.168.197.110上的操作。
按照如下步骤完成MySQL配置,并且将自己加入到分组中,最后启动分组。
(a)修改MySQL配置。
修改MySQL服务的配置文件。
[mysqld]
server_id=110gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "192.168.197.110:33061"loose-group_replication_group_seeds="192.168.197.110:33061,192.168.197.110:33061,192.168.197.110:33061"loose-group_replication_bootstrap_group= off
其中,
transaction_write_set_extraction表示需要为每个事务收集写集合并使用XXHASH64算法编码。
loose-group_replication_group_name表示本MySQL服务将加入的分组的名称。
loose-group_replication_start_on_boot表示在MySQL服务启动时是否自动启动分组复制服务。
loose-group_replication_local_address表示分组复制服务的本地监听地址。
loose-group_replication_group_seeds表示分组复制服务的种子成员,当本MySQL服务需要联系MySQL分组时,应当与这些种子成员联系。
loose-group_replication_bootstrap_group表示是否应当启动MySQL分组。在一个分组中,只应当允许一个成员启动MySQL分组。
(b)添加分组复制用户。
mysql>SET SQL_LOG_BIN=0Query OK,0 rows affected (0.03sec)
mysql> create user 'repl'@'%.coe2coe.me' identified by '123456';
Query OK,0 rows affected (0.03sec)
mysql> grant replication slave on *.* to 'repl'@'%';
Query OK,0 rows affected (0.00sec)
mysql>flush privileges;
Query OK,0 rows affected (0.01sec)
mysql> SET SQL_LOG_BIN=1;
Query OK,0 rows affected (0.03 sec)
(c)建立分组复制关系。
使用MySQL分组复制专门的复制通道,建立复制关系。
mysql> CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';
Query OK,0 rows affected, 2 warnings (0.04 sec)
(d)安装分组复制插件。
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
Query OK,0 rows affected (0.17 sec)
安装完成后使用show plugins;命令查看已安装的插件,应该可以看到有一个插件:
| group_replication | ACTIVE | GROUP REPLICATION | group_replication.so | GPL |
(e)启动分组和分组复制服务。
启动分组:
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
Query OK,0 rows affected (0.00 sec)
启动分组复制服务:
mysql>START GROUP_REPLICATION;
Query OK,0 rows affected (2.17sec)
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
Query OK,0 rows affected (0.00 sec)
至此,MySQL分组已经启动。可以通过以下命令查看分组成员,应该有一个在线成员。
mysql> SELECT *FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------+-------------+--------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------