首页 > 数据库 >4.docker mgr(mysql8.0.27)多机多节点搭建

4.docker mgr(mysql8.0.27)多机多节点搭建

时间:2022-11-14 11:45:25浏览次数:43  
标签:27 group mgr REPLICATION replication mysql8.0 user mysql GROUP

1.环境准备(已关闭防火墙和selinux)

  1.1 服务器列表

   

  1.2 修改3台服务器的hosts文件,否则会报错解析不到node1,原因参考(https://www.cnblogs.com/zhangdapangzo/p/16888205.html)

   

 2.分别创建3个mysql实例

  2.1 这里使用host network,目的是为了保证性能最大 

   

 3.根据官方文档创建my.cnf文件(https://dev.mysql.com/doc/refman/8.0/en/group-replication.html,各属性值解释也有)

  3.1 vim /home/workspace/mysql/conf/my.cnf,按需求更改3个节点的值 

   

   

   

   分别重启docker实例,docker restart mgrNode1/mgrNode2/mgrNode3

4.进入docker容器,进行设置

  4.1 docker exec -it mgrNode1 /bin/bash 

    mysql -uroot -p123456

  4.2 在3台服务器上创建用于组复制的用户

    mysql> SET SQL_LOG_BIN=0;

    mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'password';

    mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';

    mysql> GRANT CONNECTION_ADMIN ON *.* TO rpl_user@'%';
    mysql> GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
    mysql> GRANT GROUP_REPLICATION_STREAM ON *.* TO rpl_user@'%';
    mysql> FLUSH PRIVILEGES;

    mysql> SET SQL_LOG_BIN=1;

    CHANGE REPLICATION SOURCE TO SOURCE_USER='rpl_user', SOURCE_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';

  4.3 安装组复制插件(mysql8.0.27默认已安装,如果没有,使用下面命令进行安装)

    INSTALL PLUGIN group_replication SONAME 'group_replication.so';

    mysql> SHOW PLUGINS;

    

 

 

   4.4 引导组复制(只在主节点进行)

    mysql> SET GLOBAL group_replication_bootstrap_group=ON;

    mysql> START GROUP_REPLICATION USER='rpl_user', PASSWORD='password';

    mysql> SET GLOBAL group_replication_bootstrap_group=OFF;

  4.5 创建测试数据库

    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');

  4.6 将第二第三个实例添加到组

    START GROUP_REPLICATION USER='rpl_user', PASSWORD='password';

  4.7 查看组复制成员表信息performance_schema.replication_group_members,如果都为online则表示成功

    SELECT * FROM performance_schema.replication_group_members;

    

 

5. 搭建过程中的错误

  5.1 若主库启动报如下错:

    Plugin group_replication reported: '[GCS] The member was unable to join the group. Local port: 33061'

    解决方案:查看防火墙和selinux是否关闭

  5.2 若从节点state值一直为RECOVERING,同时查看日志报如下错:

    Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. Error_code: MY-002061

    报错原因:由于mysql8.0之后加密规则变成 caching_sha2_password,所以使用MGR方式复制时,需要打开公钥访问

    解决方案:在每个从节点执行如下操作

      mysql> STOP GROUP_REPLICATION;

      mysql> SET GLOBAL group_replication_recovery_get_public_key=ON;

      mysql> START GROUP_REPLICATION;

  5.3 若从节点报错

    Slave SQL for channel 'group_replication_recovery': Error 'Can't create database 'test'; database exists' on query. Default database: 'test'. Query: 'CREATE DATABASE `test` /*!40100 COLLATE 'utf8mb4_general_ci' */', Error_code: MY-001007

    解决方案:在从节点执行如下操作

      mysql> STOP GROUP_REPLICATION;

      mysql> set global super_read_only=0;
      mysql> drop database test;
      mysql> set global super_read_only=1;
      mysql> START GROUP_REPLICATION;
      mysql> SELECT * FROM performance_schema.replication_group_members;

  5.4 若从库节点报错

    Plugin group_replication reported: 'This member has more executed transactions than those present in the group. Local transactions: 6ef62e0a-1614-11ec-84c1-000c29e49c19:1-3, aadaaaaa-adda-adda-aaaa-aaaaaaddaaaa:1-7 > Group transactions: aadaaaaa-adda-adda-aaaa-aaaaaaddaaaa:1-2'

    Plugin group_replication reported: 'The member contains transactions not present in the group. The member will now exit the group.'

    解决方案:在从节点执行如下操作

      mysql> STOP GROUP_REPLICATION;

      mysql> RESET MASTER;
      mysql> START GROUP_REPLICATION;
      mysql> SELECT * FROM performance_schema.replication_group_members;

标签:27,group,mgr,REPLICATION,replication,mysql8.0,user,mysql,GROUP
From: https://www.cnblogs.com/zhangdapangzo/p/16888371.html

相关文章

  • Ftp连接-200 Switching to ASCII mode,227 Entering Passive Mode
      测试ftp服务器是否部署成功,最简单的方法,就是找个windows系统直连服务器,能连上就说明服务部署成功了。不过,有时候即使ftp服务部署成功了,windows系统依然连接不......
  • Xmind 2022 for Mac(思维导图软件) 22.10.927中文版
    Xmind2022forMac是一款全功能的思维导图软件,拥有专业实用的功能,包括思维管理、商务演示、与办公软件协同工作等功能,让您的办公更有效,还加入了演讲模式,在演说模式可自动生......
  • 2022NOIPA层联测27
    感觉再这么成天咕下去不太好…… A.天平没有观察到只需要使得选出的砝码质量的gcd与所有砝码的fcd相等即可,但是发现应该让选出的砝码的gcd取到最小值。我想找到最小......
  • P2827 NOIP2016 提高组 蚯蚓
    P2827NOIP2016提高组蚯蚓-洛谷|计算机科学教育新生态(luogu.com.cn)事实上,本题疑似所有题解和lyd蓝书上的证明均有误,本篇题解将给出一个严谨的单调性正确性证明......
  • 【比赛】2022NOIP A层联测27
    A.天平点击查看代码#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cmath>#include<iostream>#include<vector>#defineint......
  • (AtCoder Beginner Contest 277)E(分层图+最短路 or bfs搜两种状态)
    E-CrystalSwitches题目大意:给你n个点,m条边,连接成一个无向图,每个边最初有一个状态(0or1)表示是否能够通过,同时给k个开关位于k的顶点上,每次点击开关会使得所有路的状......
  • CF1027E Inverse Coloring
    考场上没敲出来(其实想到就挺好写的捏组数据手动模拟一下:\(\begin{bmatrix}1&0&1&1&1&0&1\\1&0&1&1&1&0&1\\0&1&0&0&0&1&0\\1&0&1&1&1&0&1\\0&1&0&0&0&1&0\\0......
  • ABC277E 题解
    前言题目传送门!更好的阅读体验?非常套路的分层图,纪念赛时切掉了。思路我们以样例来解释。首先,这是最基础的图。我们把图分成两层:第一层是原本\(w=1\)的路可以通......
  • ABC277D 题解
    前言题目传送门!或许更好的阅读体验?比较简单的模拟。思路首先把\(a_i\)排序。每次往后一直跑,如果不能再取了,就停下。但是这样做是\(O(n^2)\)的。我们需要优化。......
  • AtCoder Beginner Contest 277 D Takahashi's Solitaire
    Takahashi'sSolitaire双指针&&尺取先排个序,然后把数组扩展到\(2\timesn\),为了处理循环的情况然后双指针跑一下,限定\(r\)扩展的条件为:当前数字等于前一个或者......