一、MGR集群问题
说明:
1、启动MGR集群,发现从库转态是:RECOVERING,导致数据不同步。
2、查看MGR日志报错信息,发现提示从库以存在数据库linux,导致无法创建。
3、报错信息如下图所示:
二、解决方法
1、配置文件添加
vim /etc/my.cnf
[mysqld]
slave_skip_errors=all
slave_skip_errors=ddl_exist_errors
2、重启mysql数据库
service mysqld restart
3、启动mgr服务
a、master主库启动mgr服务
set global group_replication_bootstrap_group=on;
start group_replication;
select * from performance_schema.replication_group_members;
set global group_replication_bootstrap_group=off;
b、slave从库启动mgr服务
start group_relpication;
c、查看mgr集群状态
select * from performance_schema.replication_group_members;
d。查看哪个是主库
select variable_value from performance_schema.global_status where variable_name='group_replication_primary_member';
三、参数说明
slave_skip_errors选项有四个可用值,分别为: off,all,ErorCode,ddl_exist_errors 。
默认情况下该参数值是off,我们可以列出具体的error code,也可以选择all,mysql5.6及MySQL Cluster NDB 7.3以及后续版本增加了参数ddl_exist_errors,
该参数包含一系列error code(1007,1008,1050,1051,1054,1060,1061,1068,1094,1146)
一些error code代表的错误如下:
1007: 数据库已存在,创建数据库失败
1008: 数据库不存在,删除数据库失败
1050: 数据表已存在,创建数据表失败
1051: 数据表不存在,删除数据表失败
1054: 字段不存在,或程序文件跟数据库有冲突
1060: 字段重复,导致无法插入
1061: 重复键名
1068: 定义了多个主键
1094: 位置线程ID
1146: 数据表缺失,请恢复数据库
1053: 复制过程中主服务器宕机
1062: 主键冲突 Duplicate entry '%s' for key %d
**注意:对于数据一致性要求不高可以用,否则视具体情况具体使用。**