mysql数据库集群---组复制协议

[root@server1 ~]# rm -rf /usr/local/mysql/data/*
[root@server1 data]# vim /etc/my.cnf

在这里插入图片描述

[root@server1 data]# mysqld --initialize --user=mysql

在这里插入图片描述

[root@server1 ~]# /etc/init.d/mysqld start
[root@server1 ~]# vim /etc/my.cnf
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id=1
gtid_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

plugin_load_add='group_replication.so'
transaction_write_set_extraction=XXHASH64
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "172.25.4.1:33061"
group_replication_group_seeds= "172.25.4.1:33061,172.25.4.2:33061,172.25.4.3:33061"
group_replication_bootstrap_group=off
group_replication_ip_whitelist="172.25.4.0/24,127.0.0.1/8"
group_replication_single_primary_mode=OFF
group_replication_enforce_update_everywhere_checks=ON

在这里插入图片描述

[root@server1 ~]# /etc/init.d/mysqld restart 
[root@server1 ~]# mysql -pO*JlQotrZ8fF
mysql> ALTER USER root@localhost identified by 'westos';
mysql> SET SQL_LOG_BIN=0;
mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'westos';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
mysql> FLUSH PRIVILEGES;
mysql> SET SQL_LOG_BIN=1;
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='westos' FOR CHANNEL 'group_replication_recovery';
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
mysql> SELECT * FROM performance_schema.replication_group_members;

在这里插入图片描述
server2

[root@server2 ~]# rm -rf /usr/local/mysql/data/*
[root@server2 ~]# vim /etc/my.cnf

在这里插入图片描述

[root@server2 ~]# mysqld --initialize --user=mysql

在这里插入图片描述

[root@server2 ~]# vim /etc/my.cnf
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id=2
gtid_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

plugin_load_add='group_replication.so'
transaction_write_set_extraction=XXHASH64
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "172.25.4.2:33061"
group_replication_group_seeds= "172.25.4.1:33061,172.25.4.2:33061,172.25.4.3:33061"
group_replication_bootstrap_group=off
group_replication_ip_whitelist="172.25.4.0/24,127.0.0.1/8"
group_replication_single_primary_mode=OFF
group_replication_enforce_update_everywhere_checks=ON
group_replication_allow_local_disjoint_gtids_join=ON

在这里插入图片描述

[root@server2 ~]# mysql -pq%ZNXv_z2ktQ
mysql> ALTER USER root@localhost identified by 'westos';
mysql> SET SQL_LOG_BIN=0;
mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'westos';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
mysql> FLUSH PRIVILEGES;
mysql> SET SQL_LOG_BIN=1;
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='westos' FOR CHANNEL 'group_replication_recovery';
mysql> START GROUP_REPLICATION;

server1查看,成功加入
在这里插入图片描述
server3加入

[root@server3 ~]# rm -rf /usr/local/mysql/data/*
[root@server3 ~]# vim /etc/my.cnf

在这里插入图片描述

[root@server3 ~]# mysqld --initialize --user=mysql

在这里插入图片描述

[root@server3 ~]# vim /etc/my.cnf
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id=3
gtid_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

plugin_load_add='group_replication.so'
transaction_write_set_extraction=XXHASH64
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "172.25.4.3:33061"
group_replication_group_seeds= "172.25.4.1:33061,172.25.4.2:33061,172.25.4.3:33061"
group_replication_bootstrap_group=off
group_replication_ip_whitelist="172.25.4.0/24,127.0.0.1/8"
group_replication_single_primary_mode=OFF
group_replication_enforce_update_everywhere_checks=ON
group_replication_allow_local_disjoint_gtids_join=ON

在这里插入图片描述

[root@server3 ~]# /etc/init.d/mysqld start 
[root@server3 ~]# mysql -p
mysql> ALTER USER root@localhost identified by 'westos';
mysql> SET SQL_LOG_BIN=0;
mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'westos';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
mysql> FLUSH PRIVILEGES;
mysql> SET SQL_LOG_BIN=1;
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='westos' FOR CHANNEL 'group_replication_recovery';
mysql> START GROUP_REPLICATION;

server1查看,server3成功加入
在这里插入图片描述
测试

[root@server1 ~]# mysql -pwestos
mysql> create database test;
mysql> 创建表如图
mysql> use test;
mysql> desc t1;
mysql> INSERT INTO t1 VALUES (1, 'Luis');

在这里插入图片描述
server2查看
在这里插入图片描述
server2写入

mysql> use test;
mysql> INSERT INTO t1 VALUES (2, 'bw');

server1查看
在这里插入图片描述
server3写入

mysql> INSERT INTO t1 VALUES (3, 'westos');

server2查看
在这里插入图片描述
如果关闭server1

[root@server1 ~]# /etc/init.d/mysqld stop

server2写入

mysql> INSERT INTO t1 VALUES (4, 'bw');

server3查看
在这里插入图片描述
server3写入

mysql> INSERT INTO t1 VALUES (5, 'westos');

server2查看
在这里插入图片描述
server1启动

[root@server1 ~]# /etc/init.d/mysqld start
[root@server1 ~]# mysql -pwestos
mysql> select * from test.t1;
mysql> SELECT * FROM performance_schema.replication_group_members;

在这里插入图片描述
重新加入

mysql> START GROUP_REPLICATION;
mysql> SELECT * FROM performance_schema.replication_group_members;
mysql> select * from test.t1;

在这里插入图片描述


版权声明:本文为m0_51140575原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。