在雨润2年,在老大临走之际才知道我们的MySQL不是简单的主从结构,而是MGR集群。哈哈,看了老大留下来的文档,于是尝试着在自己的VM上搭建一下,练习练习
环境准备
- 192.168.2.3 centos01
 - 192.168.2.4 centos02
 - 192.168.2.5 centos03
 
tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql/mkdir -p /home/mysql/datamkdir -p /home/mysql/logchmod -R 777 /home/mysql/data/chmod -R 777 /home/mysql/log/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlln -s /usr/local/mysql/bin/mysql /usr/bin/usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/home/mysql/datachkconfig --add mysqlchkconfig --list



[mysqld]character_set_server=utf8mb4datadir=/home/mysql/datasocket=/tmp/mysql.sockuser=root# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0#优化max_connections = 3000max_connect_errors = 10000max_allowed_packet = 1024Mslow_query_log = 1long_query_time = 5slow_query_log_file = /home/mysql/log/mysql-slow.loginnodb_page_cleaners = 4lower_case_table_names = 1#Group Replicationserver_id = 1#服务IDgtid_mode = ON#全局事物enforce_gtid_consistency = ON#强制GTID的⼀致性binlog_gtid_simple_recovery = 1master_info_repository = TABLE#将master.info元数据保存在系统表中relay_log_info_repository = TABLE#将relay.info元数据保存在系统表中relay_log=/home/mysql/log/relay-logbinlog_checksum = NONE#禁⽤⼆进制⽇志事件校验log_slave_updates = ON#级联复制log_bin = /home/mysql/data/binlog#开启⼆进制⽇志记录binlog_format= ROW#以⾏的格式记录log-error=/home/mysql/log/error.logpid-file=/home/mysql/data/mysqld.pid##优化loose-group_replication_compression_threshold = 15000loose-group_replication_transaction_size_limit = 1073741824loose-group_replication_unreachable_majority_timeout = 5transaction_write_set_extraction = XXHASH64#使⽤哈希算法将其编码为散列loose-group_replication_group_name = 'ce9be252-2b72-11e6-b8f4-00212844f856'#加⼊的组名,随便写loose-group_replication_start_on_boot = off#不启⽤⾃动复制集群功能loose-group_replication_member_weigth = 30# ⾮必需,mysql 5.7.20才开始⽀持该选项loose-group_replication_local_address = 'centos01:33061'#以本机3306端⼝接收来⾃组成员的传⼊连接loose-group_replication_group_seeds='centos01:33061,centos02:33061,centos03:33061'#组中成员访问列表loose-group_replication_bootstrap_group = off#不启⽤引导组loose-group_replication_single_primary_mode = ON##loose-group_replication_enforce_update_everywhere_checks=ON# =multi-primary
Master
mysql> set SQL_LOG_BIN=0; #停掉⽇志记录mysql> grant replication slave on *.* to mgr@'%' identified by'123456';mysql> flush privileges;mysql> set SQL_LOG_BIN=1; #开启⽇志记录mysql> change master to master_user='mgr',master_password='123456' forchannel 'group_replication_recovery';mysql> install PLUGIN group_replication SONAME 'group_replication.so';mysql> show plugins;# 单主模式刧洇MGR敯䒳⪭☽僜ⱷ⹇拨┕鳮鿥糌server_id⽰IP嫱䙬⟤䷊# 设置group_replication_bootstrap_group为ON是为了标示以后加⼊集群的服务器以这台服务器为基准,以后加⼊的就不需要设置mysql> set global group_replication_bootstrap_group=ON;# 作为⾸个节点启动MGR集群mysql> start group_replication;mysql> set global group_replication_bootstrap_group=OFF;
Slave
mysql> change master to master_user='mgr',master_password='123456' forchannel 'group_replication_recovery';mysql> install PLUGIN group_replication SONAME 'group_replication.so';mysql> show plugins;# 其他节点mysql> set globalgroup_replication_allow_local_disjoint_gtids_join=ON;mysql> start group_replication;
