MySQL的主从复制和多主复制
【MySQL的主从复制和多主复制】先来弄MySQL主从复制
那先来说一下什么是主从复制呢?
主从复制简单的来说就是创建了个与主数据库一模一样的库和库环境 , 人们一般称之为从数据库 。
MySQL的主从复制是怎么完成的呢?(主从复制的原理)
主节点:需要指定自己的唯一标识server-id以及开启二进制日志(用于记录主库增删改的操作) , 对从数据库进行授权(权限为replication , slave)
从节点:需要指定自己的唯一标识server-id以及开启中继日志(用于存放从主节点二进制日志获取到的日志信息)需要指定自己的主节点是谁(指定的信息有哪个节点的地址host , 主节点授权的用户和密码 , 要同步主节点那个二进制的信息 , 以及从二进制日志的那个位置开始同步)
那MySQL的主从复制的过程又是什么样子的呢?
从节点开启从状态之后会派生俩个线程 , I/O线程和SQL线程 。 主节点会派生一个dump的线程
I/O线程主要用于去获取主节点的二进制日志里的信息 , 在I/O线程发送请求时需要指明自己要找的主节点是谁 , 以及要找的二进制日志的具体位置
主节点的dump线程用来接收并处理I/O线程发送来的请求 , 将I/O线程请求的内容发送给I/O线程
I/O线程将从主节点获取到的日志信息存放在从库的中继日志中 , I/O线程工作完成(本次工作完成)
为了使主从节点需要执行中继日志最新获取的跟SQL语句相关的内容 , 就是需要SQL线程对中继日志的SQL语句进行提取之后再执行 , 来实现主节点的数据同步过程
在这个过程中 , 从节点获取到二进制日志信息之后需要及时更新所记录的要获取的二进制日志的偏移量 , 以确保下次同步不再获取已经有的操作
从节点中继日志中的SQL语句执行完成后也需要及时更新中继日志的偏移量
(大家可以看一下下面这张图)
/etc/my.cnf
【mysqld】
Server-id=1节点标识符
log-bin=mysql-bin开启二进制日志
主数据库授权:
简单的来说就是两台或者多台数据库互为主从结构 , 当有一台发生变化另一台也发生变化 , 这样有一个好处就是有了负载均衡的效果 。
那么接下里我们来做一下多主架构:
我一共用了四台分别为:
推荐阅读
- 养老金|2021年上半年办理退休,养老金核算的这些知识要把握
- 量化|量化大师麦教授:美好的不确定性
- 浪胃仙|泡泡龙的离世给所有吃播提了醒,浪胃仙顺势决定“转行”,新职业认真的吗?
- 脑梗死|脑梗死和喝酒有没有关系呢?爱喝酒的朋友,应该看看
- 米歇尔·戴斯玛克特|海奥华预言的真相,地球人被带到九级文明,揭开神话背后的秘密
- 减肥也能吃的小零食,营养美味,低脂低热量,多吃也不怕!
- 1碗面粉,不加水,锅里蒸一蒸,做香甜可口的发糕,比蛋糕还香
- 扇贝最好吃的做法,适合冬日里吃,做法简单好吃不腻,家人超爱吃
- 七种颜色的布丁吃过没有?软糯爽口,Q弹软糯
- 爱吃南瓜饼的收藏,外酥里嫩,香甜软糯,饭桌上必备,做法超简单
