Centos 7.4 Mysql 8.0 Setting up replication(主从复制)一主多备

mysql数据库安装参考再次不在详述,本文采用的是mysql8.0.12

介绍

主从复制涉及单个主服务器和多个从服务器,结构图如下,所有的主从复制都是基于binary log
在这里插入图片描述
打开主从复制有以下几步

  1. 在Master服务器上打开binary logging
  2. 在Master服务器上创建用于远程复制的用户
  3. 在Slave服务器上设置唯一的server_id
  4. 在Master上获取Master服务器的备份集
  5. 在Slave上恢复数据库
    下面我们来一步一步操作以下。

安装

一 开启binary logging

1 设置log-bin路径以及server-id

vi /etc/my.cnf
log-bin = /app/mysql/mysqldata/3306/binlog/mysql-bin
server-id = 1203306

2 重启Mysql数据库

systemctl restart mysqld

3 验证是否启动成功

SHOW VARIABLES LIKE 'log_bin%';

在这里插入图片描述

ls -lhtr /app/mysql/mysqldata/3306/binlog

在这里插入图片描述
如图代表配置正确

二 在Master服务器上创建用于远程复制的用户

create user 'binlog_user'@'%' identified by 'binlog_user'; 
grant all on *.* to 'binlog_user'@'%';
flush privileges;

三 在Slave服务器设置SERVER_ID

必须保证在集群环境中的每一个SERVER_ID是唯一的,不能相同

SET @@GLOBAL.SERVER_ID = 21203306;

四 在Slave服务器备份数据库

以下两种方案二选一

mysqldump -h <master_host> \
-u backup_user \
--password=<pass> \
--all-databases \
--routines --events \
--single-transaction \
--master-data  > dump.sql

在这里插入图片描述
可以增加–slave-dump从Slave节点备份数据
安装mydumper可以参看下面这篇文章
https://blog.csdn.net/ciqingloveless/article/details/82866791

mydumper -h <master_host> \
-u backup_user \
--password=<pass> \
--use-savepoints  \
--trx-consistency-only \
--kill-long-queries \
--outputdir /app/mysql/mysqldata/backup

五 在Slave恢复数据库

以下两种方案二选一
执行dump.sql将现有数据导入到数据库

mysql -u <user> -p -f < dump.sql
myloader \
--directory=/backups \
--user=<user> \
--password=<password> \
--queries-per-transaction=5000 \
--threads=8 \
--overwrite-tables

六 开启Slave数据库

在mysql中执行

CHANGE MASTER TO MASTER_HOST='<master_host>', MASTER_USER='binlog_user', MASTER_PASSWORD='binlog_P@ss12', MASTER_LOG_FILE='<log_file_name>', MASTER_LOG_POS=<position>

本文参数

CHANGE MASTER TO MASTER_HOST='192.168.200.101', MASTER_USER='root', MASTER_PASSWORD='root',MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=5045;

其中<log_file_name> and <position>这两个参数包含在了刚才导出的dump.sql文件中,通过以下命令查看
在系统中执行

cd /usr/MyWorkSpace/
less dump.sql

在这里插入图片描述
在mysql中执行

START SLAVE;
SHOW SLAVE STATUS\G;

在这里插入图片描述
如果要从从站或主站备份以设置另一个从站,则必须使用SHOW SLAVE STATUS中的位置。如果要设置链复制,可以使用SHOW MASTER STATUS中的位置。

附录:

1 ERROR 3546错误

ERROR 3546 (HY000) at line 26: @@GLOBAL.GTID_PURGED cannot be changed: the added gtid set must not overlap with @@GLOBAL.GTID_EXECUTED

在Slave执行

reset  master;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值