当前位置:网站首页>Mysql5.7版本如何实现主从同步
Mysql5.7版本如何实现主从同步
2022-07-27 05:11:00 【超多多和刘宝宝的代码世界】
前言
之前说到redis的主从备份:
Mysql主从复制指的是数据可以从一个Mysql数据库节点复制到多个Mysql数据库节点。 Mysql数据库默认采用异步复制机制。这样对于master节点和slave节点来说,只能保证弱一致性。可能会存在master节点和slave节点数据不一致的情况。
redis同步第一次进行全量同步,slave将master上的数据全部复制一份。slave放弃之前的数据,将接收到的RDB文件全部导入,之后进行增量同步。
和redis不同,mysql主从同步只能基于搭建好之后的数据操作的同步,无法同步以前的数据,故需要手动同步
一、原理?
1.master节点通过foke一个线程将数据变动记录到binlog文件中
2.slave节点通过io线程每一段时间去master节点获取binlog日志数据,保存到relay log中继日志中
3.slave节点检测中继日志有更新,sql线程会将更新的内容同步到slave节点中
tip:还记得之前的日志监听器吗??
二、步骤
1.master搭建
139.9.186.192服务器作为master
1.拉镜像,今天拉5.7版本
docker pull mysql:5.7
2.运行mysql-master
docker run -d -p 3306:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
3.更新和下载vim插件
1.docker exec -it mysql-master /bin/bash
2.apt-get update
3.apt-get install vim
4.打开my.cnf文件
vim /etc/mysql/my.cnf
5.修改my.cnf文件,添加如下文件
[mysqld] //必填
server_id=1 //如果在同一局域网下部署集群,那么多个mysql的server_id不能相同
log-bin=mysql-bin //日志名称
expire_logs_days=7 //自动清理log时间
6.重启mysql-master
7.查看是否生效
1.进入docker exec -it mysql-master /bin/bash
2.使用mysql> mysql -u root -p
3.mysql> show variables like '%log_bin%'; //log_bin日志此时为on
8.创建从库连接的用户
mysql> grant replication slave on *.* to 'slave'@'%' identified by '123456';
9.查看主数据库状态
mysql> show master status //记录下file名字和position后面从库连接使用
2.slave搭建
1.15.233.184为slave
1.拉镜像,拉5.7版本
docker pull mysql:5.7
2.运行mysql-master
docker run -d -p 3306:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
3.更新和下载vim插件
1.docker exec -it mysql-slave /bin/bash
2.apt-get update
3.apt-get install vim
4.打开my.cnf文件
vim /etc/mysql/my.cnf
5.修改my.cnf文件
[mysqld]
server_id=2
read_only=1 //将slave从库设置为只读状态,0为读写状态
6.重启salve,再次进入
7.连接到mysql,连接到master
mysql> change master to
-> master_host='139.9.186.192',
-> master_user='slave',
-> master_password='123456',
-> master_log_file='mysql-bin.000001', //填写上面要你记录的file
-> master_log_pos=406; //填写上面要你记录的position
mysql> start slave;
测试:
从master添加一个test数据库,那么slave将收到。如果在slave添加,那么master不会收到
边栏推荐
猜你喜欢

Amazon evaluation autotrophic number, how to carry out systematic learning?

Page configuration

SeekTiger即将上线STI聚变Mining功能,获取OKA通证

Permission configuration, component value transfer

记一次PG主从搭建及数据同步性能测试流程

SSTI 模板注入

GameFi如何破圈,AQUANEE靠真正“P2E”展现风采

正则表达式

Exit login and JSX display

How to open a general commodity futures account
随机推荐
给测试小姐姐的第三封信 | ORACLE存储过程知识分享和测试说明
二十五家互联网大厂软件测试笔试题总结,遇到包过。
路由的配置和前往登录首页进行发送请求
记一次PG主从搭建及数据同步性能测试流程
Promise's understanding and its instance method
「PHP基础知识」PHP语句和语句块
XSS knowledge points
Prototype and prototype chain in JS
Self understanding and thinking
beef-xss安装与使用
刷脸支付永远不会过时只会不断的变革
一本通顺序结构程序设计题解(第一章)
The business logic of face brushing changed significantly, and merchants vied for war smoke to rise again
How to judge whether an object is empty in JS
Ubuntu:安装PostgreSQL
Department management of cloud e-office projects
Amazon evaluation autotrophic number, how to carry out systematic learning?
[BJDCTF2020]EasySearch 1
Integration and extension of robot programming and interdisciplinary
[MRCTF2020]Ezpop 1