如何将Multi-Primary改为Single-Primary?
1.解散原来的集群
mysql-js> cluster.dissolve({force: true})
2.每台主机MySQL修改如下配置
mysql> set global group_replication_enforce_update_everywhere_checks=OFF;
mysql> set global group_replication_single_primary_mode=ON;
3.重新创建集群
mysql-js> var cluster = dba.createCluster('mysqlCluster');
mysql-js> cluster.addInstance('user@svr2:3306');
mysql-js> cluster.addInstance('user@svr3:3306');
执行如下命令应该都显示ONLINE,这里显示RECOVERING
SELECT * FROM performance_schema.replication_group_members;

解决办法:
修改/etc/hosts,将主机名和ip对应,然后进到每台mysql中,操作如下sql即可
主服务器
set global group_replication_bootstrap_group=on;
start group_replication;
`set global group_replication_bootstrap_group=off;
其它节点:
start group_replication;
报错信息: panic: The table does not comply with the requirements by an external plugin. (errno 3098) (sqlstate HY000)
解决办法: 意思是表中有外键,多主模式是不支持外键的,但是用户的mysql即使是第一次安装也会报这个错误; 其实是dba.createCluster()会创建集群库mysql_innodb_cluster_metadata,在该库中会建立五个表,其中四个表有外键!! 不明白官方为什么留这么大的一个坑,总之,把表中的外键全部删除,再次执行就成功了。
报错信息: ERROR 3092 (HY000): The server is not configured properly to be an active member of the group. Please see more details on error log.
解决办法: 查看每台机器的配置文件这2行是否正确
loose-group_replication_local_addressloose-group_replication_group_seeds查看是否启动了local_address所写的端口
netstat -unltp
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。