首页 > 数据库 >mysql8.0.x-mgr组复制

mysql8.0.x-mgr组复制

时间:2023-03-10 09:22:18浏览次数:65  
标签:repl group log replication mgr 复制 mysql8.0 mysql MASTER

概述

在mysql8.x搭建组复制,发现优化5.7.x的不展示节点类型的bug.丢弃了部分参数
关于mysql停机后重启是否可以自动拉起,待研究

开干

env

  • centos7.x 2c4g x3
  • mysql-8.0.x

支持mgr(mysql5.7.17+)

x00、requirement

  • dis firewalld
  • dis selinux
  • ad hosts
tee >>/etc/hosts<<EOF
172.24.20.20 c7-20-20
172.24.20.21 c7-20-21
172.24.20.22 c7-20-22
EOF

一定要跟主机名一致,支持1各节点down不影响集群

x01、mysql安装

x02、my.cnf

[mysql]
auto-rehash
default-character-set = utf8mb4
connect-timeout = 3

[mysqld]
server-id = 11764
port = 3306

#base
basedir = /servyou/mysql
datadir = /servyou/mysql_data

#innodb
default-storage-engine = INNODB
innodb_buffer_pool_size = 2G

#set character
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

#optimazed
skip-name-resolve

#default_authentication_plugin = mysql_native_password
authentication_policy = mysql_native_password

max_allowed_packet = 250M
lower_case_table_names = 1
max_connections = 2000
max_user_connections = 1500
explicit_defaults_for_timestamp = true
default-time-zone = system

#log
binlog_format = ROW
log-bin = mysql-binlog
max_binlog_size = 1G
#expire_logs_days = 30
binlog_expire_logs_seconds = 2592000
slow_query_log = 1
long-query-time = 30
log_timestamps = SYSTEM
log_bin_trust_function_creators = 1
relay-log=relay-binlog
binlog_checksum=NONE

#gtid
gtid_mode=ON
enforce_gtid_consistency=ON
relay_log_recovery=ON
#log_slave_updates=ON
log_replica_updates=1
#master_info_repository=TABLE
#relay_log_info_repository=TABLE

#add plugin
plugin-load=group_replication.so

#mgr
#transaction_write_set_extraction = XXHASH64
loose-group_replication_group_name = "c7edeea5-ff2d-11e6-a6c7-0800279704c8" 
loose-group_replication_start_on_boot = off

#每个节点ip不一样
loose-group_replication_local_address = "172.24.20.20:13306"
loose-group_replication_group_seeds = "172.24.20.20:13306,172.24.20.21:13306,172.24.20.22:13306"
loose-group_replication_bootstrap_group = off

loose-group_replication_single_primary_mode = FALSE
loose-group_replication_enforce_update_everywhere_checks = TRUE
loose-group_replication_ip_whitelist="172.0.0.0/8"

group-replication-auto-increment-increment=3
#group_replication_allow_local_disjoint_gtids_join=ON

[mysqld_safe]
socket = /servyou/mysql_data/mysql.sock
log-error = /servyou/mysql_data/mysql_error.log
pid-file = /servyou/mysql_data/mysqld.pid

注释的都是即将或者已经丢弃的参数,修改server_id、group_replication_local_address

x03、新增repl账户

all nodes

//设置binlog不记录  SET SQL_LOG_BIN=0;
SET SQL_LOG_BIN=0;
create user repl@'172.%' identified by 'repl_321';
grant replication slave on *.* to repl@'172.%';
flush privileges;
SET SQL_LOG_BIN=1;

//开启记录binlog  SET SQL_LOG_BIN=1;

### 如果不临时关闭binlog 需要  reset master;在各个节点上
create user repl@'172.%' identified by 'repl_321';
grant replication slave on *.* to repl@'172.%';
flush privileges;

x04、开启组复制

开启复制

在20上开启组复制
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='repl_321' FOR CHANNEL 'group_replication_recovery';
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

在21开启复制:
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='repl_321' FOR CHANNEL 'group_replication_recovery';
START GROUP_REPLICATION;

STOP GROUP_REPLICATION;
查看集群状态:
SELECT * FROM performance_schema.replication_group_members;

3306 | ONLINE       | PRIMARY
3306 | ONLINE       | PRIMARY

select @@read_only,@@super_read_only;

error

2022-02-19T18:42:02.022292+08:00 0 [ERROR] [MY-011522] [Repl] Plugin group_replication reported: 'The member contains transactions not present in the group. The member will now exit the group.'

reset master;  //清空Executed_Gtid_Set
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='repl_321' FOR CHANNEL 'group_replication_recovery';
START GROUP_REPLICATION;

标签:repl,group,log,replication,mgr,复制,mysql8.0,mysql,MASTER
From: https://www.cnblogs.com/xiaochina/p/17019550.html

相关文章

  • 【AutoHotkey】复制、粘贴、网页关闭等快捷键改键
    工具简洁AutoHotky适合没有带驱动的笔记本键盘、其他薄膜键盘,用来改键。造福广大办公人员,提升效率。源码`::Send^cPause::Send^vScrollLock::Send^wPrintScr......
  • docker搭建Redis服务、主从复制、哨兵模式、Cluster模式
    本篇介绍使用docker搭建简单的Redis服务以及搭建Redis服务的三种模式主从复制、哨兵模式、Cluster模式1.搭建简单的Redis服务port7006#端口号cluster-enabledyes......
  • mysql8.0 sql_mode 报错1055
    Mysql的8.0版本中默认是开启sql_mode=only_full_group_by。可能会导致1055报错,要关闭的话可以这样操作在MySQL下执行语句SELECT@@sql_mode将查询结果中的ONLY_FULL_GR......
  • 一文深入 Redis 主从复制的原理详解
    文章目录:1、复制过程2、数据间的同步3、全量复制4、部分复制5、心跳6、异步复制复制原理1.复制过程复制的过程步骤如下:1、从节点执行slaveof命令2、从节......
  • swiper中解决文字不能复制
    有同事想复制公司网站上的文字信息,电话、邮箱之类的,如下图:因为当时用的swiper.js写的一些模块动画,鼠标选中操作时整块页面会滑走,无法选中文字信息进行复制,让我处理一下,方便......
  • 简单的主从复制
    简单的主从复制配置文件说明master:cat/etc/my.cnf[client]port=3306socket=/data/soft/mysql/mysql.sock[mysqld]user=mysqlport=3306socket=......
  • 复制文件
    在delphi里实现文件复制可以直接调用copyfile(path1,path2,false);其中path1为源文件名(包括路径),path2为目标文件名(包括路径);注意path1,path2为char类型,如果是其他......
  • MySQL5.7主从复制教程
     MySQL5.7主从复制教程 ​简述:主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库、事务处理库,从库做查询库。......
  • 如何使用“pv”命令监控(复制/备份/压缩)数据的进度
    概述在Linux系统上进行备份和复制/移动大文件时,您可能希望监视正在进行的进度。许多终端工具没有允许您在管道中运行命令时查看进度信息的功能。在本文中,我们将了解一个......
  • 使用Mycat构建MySQL读写分离、主从复制、主从高可用
    数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。 从数据库的角度来说,对于大多数应用来说,从集中到分布,最基本的一个需求不是数据存......