mysql组复制总结

1 安装mysql5.7
2 配置hosts映射
cat /etc/hosts
172.19.84.44 mgr1
172.19.84.45 mgr2
172.19.84.43 mgr3
重启服务器
3 my.cnf [mysqld]下增加如下配置
#基本配置
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
# 组复制设置
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="172.19.84.44:36901"
loose-group_replication_group_seeds= "172.19.84.44:36901,172.19.84.45:36901,172.19.84.43:36901"
loose-group_replication_bootstrap_group=off
如果使用多主模式增加
[group_replication_single_primary_mode=OFF](https://dev.mysql.com/doc/refman/5.7/en/group-replication- options.html#sysvar_group_replication_single_primary_mode) #关闭指示组自动选择单个服务器作为处理读/写工作负载的服务器
group_replication_enforce_update_everywhere_checks=ON #在所有位置启用多主数据更新的严格一致性检查,在单主模式下,这不是问题,因为它不允许并发写入组的多个成员,因此不存在未检测到的冲突的风险。
组中其他服务器的配置类似。server_id,loose-group_replication_local_address等需要根据当前服务器的情况设置.

执行:
service mysqld restart

6
mysql> create user repl@'%' identified by 'mysql';
grant replication slave on . to repl@'%';
FLUSH PRIVILEGES;

默认不允许公网的互相连接,如果未明确指定白名单,则服务器会自动将白名单设置为服务器具有接口的专用网络。这意味着服务器即使在公共IP上具有接口,也不会默认允许来自外部主机的连接。
需要为所有成员指定相同的白名单。
SET GLOBAL group_replication_ip_whitelist="192.0.2.21/24,198.51.100.44,203.0.113.0/24,example.org,www.example.com/24";

7 CHANGE MASTER TO MASTER_USER='repl',MASTER_PASSWORD='mysql' FOR CHANNEL 'group_replication_recovery';
change master to master_user='repl', master_password='mysql' for channel 'group_replication_recovery';

8 INSTALL PLUGIN group_replication SONAME 'group_replication.so';
SHOW PLUGINS;

9 启动组
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

10 检查组是否创建成功
SELECT * FROM performance_schema.replication_group_members;

11 检测服务器确实在一个组中并且它能够处理负载:
mysql> CREATE DATABASE test;
mysql> USE test;
mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL);
mysql> INSERT INTO t1 VALUES (1, 'Luis');

SELECT * FROM t1;
SHOW BINLOG EVENTS;

12 在第二个服务器

SET SQL_LOG_BIN=0;
CREATE USER repl@'%' IDENTIFIED BY 'mysql';
GRANT REPLICATION SLAVE ON . TO repl@'%';
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='repl',MASTER_PASSWORD='mysql' FOR CHANNEL 'group_replication_recovery';

INSTALL PLUGIN group_replication SONAME 'group_replication.so';
SHOW PLUGINS;

set global group_replication_allow_local_disjoint_gtids_join=ON;
将服务器s2添加到组中: START GROUP_REPLICATION;

SELECT * FROM performance_schema.replication_group_members;

验证:
SHOW DATABASES LIKE 'test';
SELECT * FROM test.t1;
SHOW BINLOG EVENTS;
===========================查找主服务器========================================
SHOW STATUS LIKE 'group_replication_primary_member'
=============================主要问题解决==================================
从服务器启动之后一直报:
RECOVERING :

方法1 :重启服务器之后。
主服务器mysql执行reset master.
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

从服务器;
reset master
直接
set global group_replication_allow_local_disjoint_gtids_join=ON;
START GROUP_REPLICATION;
reset master。

方法2:
1 在正常节点:
select * from performance_schema.replication_group_member_stats \G ;
2 获取正常节点的TRANSACTIONS_COMMITTED_ALL_MEMBERS
值: eg: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-151,b376058d-5762-11e7-baa0-000c29e6b568:1-47678
3 在非正常节点执行:
set global gtid_purged='740ab1ab-d818-11e8-a6bc-00163e0aecff:1-7,
aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-37';
4 start group_replication;

5 如果还不行,第一步加上reset master;
6 如果第3步提示 提示ERROR 1840 (HY000): @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty. ,先执行reset master;
=============================================================

1:没有设置白名单网段:需要添加自己所在网段.

报错:'[GCS] The member is leaving a group without being on one.'

解决:set global group_replication_ip_whitelist="127.0.0.1/32,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,192.168.1.0/24"; START GROUP_REPLICATION;

从服务启动复制如果报错:
2:ERROR 3092 (HY000): The server is not configured properly to be an active member of the group. Please see more details on error log.1
解决方案:
根据提示打开group_replication_allow_local_disjoint_gtids_join选项,mysql命令行执行:
mysql> set global group_replication_allow_local_disjoint_gtids_join=ON;
再次启动组复制
mysql> START GROUP_REPLICATION;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343