当前位置:网站首页>MYSQL主从复制
MYSQL主从复制
2022-08-01 00:16:00 【三月不灭】
主从复制
一、什么是主从复制
将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。
基本原理:
MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。
MySQL复制是基于主服务器在二进制日志中跟踪所有对数据库的更改。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器已经记录到日志的数据。
当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,并在本机上执行相同的更新。然后封锁并等待主服务器通知新的更新。从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新。
slave会从master读取binlog来进行数据同步
二、主从复制的作用
1、主数据库出现问题,可以切换到从数据库。
2、可以进行数据库层面的读写分离。
3、可以在从数据库上进行日常备份。
三、复制过程
Binary log:主数据库的二进制日志。
Relay log:从服务器的中继日志。
**第一步:**master在每个事务更新数据完成之前,将该操作记录串行地写入到binlog文件中。
**第二步:**salve开启一个I/O Thread,该线程在master打开一个普通连接,主要工作是binlog dump process。如果读取的进度已经跟上了master,就进入睡眠状态并等待master产生新的事件。I/O线程最终的目的是将这些事件写入到中继日志中。
**第三步:**SQL Thread会读取中继日志,并顺序执行该日志中的SQL事件,从而与主数据库中的数据保持一致。
主从复制过程演示:
1.要求主从机mysql版本一致且后台以服务运行,首先确保两台主机能相互通信,然后修改配置文件
2.主从配置在[mysqld]节点下,都是小写
3.主机修改my.ini配置文件
【必须】1.主服务器唯一ID
server-id=1
【必须】2.启用二进制日志
log-bin=自己本地的路径/mysqlbin
log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin
【可选】3.【可选】启用错误日志
log-err=自己本地的路径/mysqlerr #每次启动mysql,shutdown都会记录在里面,如果出错了,可在这里看
log-err=D:/devSoft/MysQLServer5.5/data/mysqlerr
【可选】4.根目录
basedir="自己本地路径"
basedir="D:/devSoft/MySQLServer5.5/"
【可选】5.临时目录
tmpdir="自己本地路径"
tmpdir="D:/devSoft/MySQLServer5.5/"
【可选】6.数据目录
datadir="自己本地路径/Data/"
datadir="D:/devSoft/MySQLServer5.5/Data/"
主机,读写都可以
7.read-only=0
【可选】8.设置不要复制的数据库
binlog-ignore-db=mysql
【可选】9.设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
4.从机修改my.cnf配置文件
(必须)从服务器唯一ID
(非必须)启用二进制日志
【因修改过配置文件,从机+主机需要重启后台mysql后台服务】
修改完配置service mysql restart
5.主从机都关闭防火墙
windows手动关闭
虚拟机Linux防火墙 service iptables stop
在windows主机上建立账户并授权slave【数据库数据很重要,正常不允许其他机器随便一个用户都可以访问,需要授权】
允许从机192.168.14.167以zhangshan这个用户名,123456密码登录到主机
Position=341:即主机的数据库从mysqlbin的341行开始copy,磁盘有一个磁柱,从哪个磁道开始复制
7.在Linux从机上配置需要复制的主机
CHANGE MASTER TO MASTER_HOST='192.168.14.165',
MASTER_USER='zhangsan',
MASTER PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.具体数字’,MASTER_LOG_POS=具体值;
8.主机新建库,新建表,insert记录,从机复制
如何停止从服务复制功能
stop salve;
注意点:一般stop slave情况就是1、想停止复制功能,2、数据库赋值功能没有正常启动,
slave_10_Running : Yes S1ave_sQL_Running : Yes不是这种情况,就需要先停止,重新查主机的show slave status,然后重新按显示的参数重新设置如下赋值信息
CHANGE MASTER TO MASTER_HOST='192.168.14.165',
MASTER_USER='zhangsan',
MASTER PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.具体数字’,MASTER_LOG_POS=具体值;
边栏推荐
- 编写方法将一个数组扁平化并且去重和递增排序
- 清华大学陈建宇教授团队 | 基于接触丰富机器人操作的接触安全强化学习框架
- 游戏安全03:缓冲区溢出攻击简单解释
- Pylint检查规则中文版
- SQL注入 Less38(堆叠注入)
- 命名实体识别-模型:BERT-MRC
- 面试题:实现死锁
- 【FPGA教程案例43】图像案例3——通过verilog实现图像sobel边缘提取,通过MATLAB进行辅助验证
- TFC CTF 2022 WEB Diamand WriteUp
- Binary tree traversal non-recursive program -- using stack to simulate system stack
猜你喜欢
随机推荐
Difference Between Stateless and Stateful
精心总结十三条建议,帮你创建更合适的MySQL索引
How to Design High Availability and High Performance Middleware - Homework
继承和友元,静态成员的关系
SQL injection Less46 (injection after order by + rand() Boolean blind injection)
助力数字政府建设,中科三方构建域名安全保障体系
Southern University of Science and Technology: Xiaoying Tang | AADG: Automatic Enhancement for Generalization in the Field of Retinal Image Segmentation
Mysql environment installation under Linux (centos)
Carefully summarize thirteen suggestions to help you create more suitable MySQL indexes
Flink 1.13(八)CDC
一行代码解决CoreData托管对象属性变更在SwiftUI中无动画效果的问题
字符编码和浮点型计算精度丢失问题
UOS - WindTerm use
The role of /etc/resolv.conf
2022年CSP-J1 CSP-S1 第1轮初赛 报名指南
【FPGA教程案例43】图像案例3——通过verilog实现图像sobel边缘提取,通过MATLAB进行辅助验证
开源好用的 流程图绘制工具 drawio
Interview Blitz 69: Is TCP Reliable?Why?
硬件设备计算存储及数据交互杂谈
谷歌『云开发者速查表』;清华3D人体数据集;商汤『通用视觉框架』公开课;Web3极简入门指南;高效深度学习免费书;前沿论文 | ShowMeAI资讯日报