13MySQL主从复制原理与搭建指南

mysql主从复制

概述

主从复制是将主数据库中的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行,从而使从库和主库的数据一致。

mysql支持一台主库(master)同时向多台从库(slave)进行复制,从库同时也可以作为其他服务器的主库,实现链状复制。

优点:

1主库出现问题,可以快速切换到从库提供服务

2实现读写分离,降低主库的访问压力

3可以在从库中执行备份,以避免备份期间影响主库服务。

原理

mysql主从复制原理如下:

从上图来看,复制分成三步:

  1. Master主库在事务提交时,会把数据变更记录在二进制日志文件Binlog中。

2.从库读取主库的二进制日志文件Binlog,写入到从库的中继日志Relay Log。

3.slave重做中继日志中的事件,将改变反映它自己的数据。

主从复制搭建

1.一主一从搭建

主库配置

1;需要准备两台服务器,并在服务器上都安装好MySQL,并开放MySQL的3306端口,具体配置如下图:

2;修改主库中的配置文件/etc/my.cnf,给主库配置唯一的server-id,并指定可以读和写,其他的全局参数可以自行指定,如下图:

配置文件后需要systemctl restart mysqld重启mysql服务

3;给主库创建一个远程连接的账号,授予主从同步的复制权限,该账号是给从库用来主从复制的,如下图:

4;使用指令查看一下二进制的坐标,也就是当前的数据库的变更对应到二进制文件的哪个位置,方便从库从指定位置开始和主库进行同步,如下图可知,当前主库的二进制日志写binlog.000004文件的663位置。

从库配置

1;修改从库中的配置文件,给从库配置唯一的server-id,不能与主库id相同,并指定可以读,其他的全局参数可以自行指定,如下图:

2;配置文件后需要systemctl restart mysqld重启mysql服务

3;设置从库与主库的连接配置,语法如下图:

主库的ip是192.168.200.200,连接主库的账号密码分别是itcast,Root@123456,在主库配置时我们知道,主库的变更从binlog.000004文件的663位置开始的,所以最终的连接配置语句如下图:

4;使用以下命令开启主从复制功能

5;查看主从复制状态

Replice_IO_Running和Replice_SQL_Running都是yes,说明主从复制成功。

这是我的个人学习笔记,主要用于记录自己对知识点的理解和梳理。由于目前仍在学习探索阶段,内容中难免存在理解偏差或表述疏漏,恳请各位大佬不吝赐教,多提宝贵意见~ 若有不同看法,欢迎理性交流探讨,感谢包容与指正!

相关推荐
叼烟扛炮6 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
.痞老板.9 小时前
mysql初阶--数据库基础
数据库·mysql
城北徐宫10 小时前
MySQL约束条件一览
数据库·mysql
码农小河6610 小时前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
ClouGence12 小时前
数据库变更审批困局,被这个开源工具解决了
数据库·开源
TDengine (老段)12 小时前
TDengine IDMP 十大实用功能(9)
大数据·数据库·人工智能·物联网·时序数据库·tdengine·idmp
starrocks_stella13 小时前
EMR Serverless StarRocks Object Table:用 SQL 连接 OSS 文件与多模态 AI
数据库
这个DBA有点耶14 小时前
以为自增ID只是有空洞?聊聊双主架构下无声的“数据覆盖”
数据库·mysql·dba
陈布衣14 小时前
MySQL(1)_MySQL 5.7.21 Linux 安装笔记
linux·笔记·mysql
钱栈up14 小时前
内网全断,怎么核实高炉和烧结系统的数据库对接信息
数据库