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语句执行完成后也需要及时更新中继日志的偏移量

(大家可以看一下下面这张图)

ec8ca882448e1bcb295dd855b7e31e9b.png

下面我们举个例子:

更改数据库的配置文件:

/etc/my.cnf

【mysqld】

Server-id = 1 节点标识符

log-bin = mysql-bin 开启二进制日志

主数据库授权:

5d9b6ad634b751810c85c100f6d59a63.png

从数据库开启中继日志:

042354a68ac76d9d0fc71685e3667697.png

进入数据库连接主数据库;

e16ede6c77ce0f0f8948ef636f45ecc5.png

接下来我们创建一个数据库验证一下(主服务器新创建了一个库zhaosir)

da75fa003de5d273f2ebd6b67f3497a8.png

我们再从服务器查看一下(同步完成)

a05c670442ac24d830408fc4249a219e.png
3927e453a56220aadce8002a3fec4c82.png

接下来我们来说一下主主结构

什么是主主结构呢?

简单的来说就是两台或者多台数据库互为主从结构,当有一台发生变化另一台也发生变化,这样有一个好处就是有了负载均衡的效果。

那么接下里我们来做一下多主架构:

我一共用了四台分别为:

25391aa3a1e20ee4ed675b9a1bf3bb8b.png

结构和大家说一下,主1和主2互为主从,主1和从1为主从,主2和从2为主从。

主1的配置文件(重启)

b2f95e890831146e6c3dc88f8d9d5e76.png

主2的配置文件(重启)

c34f0a117991abe86bf3fb07b5a05577.png

从1的配置文件(重启)

e8598708f4026a0089ca23eaa67daa98.png

从2的配置文件(重启)

fbc9c23b364e7d82c4ca80e3ffef7fb9.png

主1MySQL的配置(连接的是主2)

c518a8e4b64fa1716c08e1e0cfaf3085.png
c188b952e92fbc740134efce75c0baa8.png

主2的MySQL配置(连接的是主1)

6d21f8f747fa3dc28f2b88932017a7a4.png

从1MySQL连接到1

22820fa9ba643a38bbfa21e5a3b8deb6.png

从2MySQL连接到主2

c273f2c1fce991db5902d2645ac13da5.png

架构制作完毕(我们来验证一下)

在主1创建一个testA,主创建testB。

ff996d3d97356abbb82fea353d09e8e9.png
b2649b730bacd1fe3e7601b0d9ce1306.png

我们查看一下

d9ee095055ef6941d60de15d6b2290fb.png
19920c66925b933f0dec7881c45cfa01.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值