Centos7的MYSQL(mariadb)主从复制配置及原理

本文介绍了Centos7环境下MySQL(MariaDB)的主从复制配置及其原理,包括主从复制的作用,如数据分布、负载均衡、备份和故障切换。详细阐述了复制过程,涉及主节点的bin日志、从节点的I/O线程和SQL线程,以及配置步骤,包括在主节点和从节点上启用日志、设置server_id、创建复制用户等。最后,文章提供了一个完整的配置示例并进行了测试验证。
摘要由CSDN通过智能技术生成

为什么搭建:

当单台 MYSQL 服务器无法满足当前网站流量时的优化方案,需要搭建 mysql 集群技术,而centos7以上的mysql的yum包里已经是mariadb数据库了,而它们的内核是相同的,原理基本相同。

主从功能:

数据分布
负载均衡(读)
备份
高可用和故障切换
MySQL升级测试

复制原理:

Mysql 中有一种日志叫做 bin 日志(二进制日志)。这个日志会记录下所有修改了数据库的SQL 语句(insert,update,delete,create/alter/drop table, grant 等等,除了读功能,如果读要做负载均衡就是主从读写)。
主从复制的原理其实就是把主服务器上的 bin 日志复制到从服务器上执行一遍,这样从服务器上的数据就和主服务器上的数据相同了。

复制过程:

1.主节点必须启用二进制日志,记录任何修改了数据库数据的事件。

2.从节点开启一个线程(I/O Thread)把自己扮演成 mysql 的客户端,通过 mysql 协议,请求主节点的二进制日志文件中的事件
主节点启动一个线程(dump Thread),检查自己二进制日志中的事件,跟对方请求的位置对比,如果不带请求位置参数,则主节点就会从第一个日志文件中的第一个事件一个一个发送给从节点。

3.从节点接收到主节点发送过来的数据把它放置到中继日志(Relay log)文件中。并记录该次请求到主节点的具体哪一个二进制日志文件内部的哪一个位置(主节点中的二进制文件会有多个,在后面详细讲解)。

4.从节点启动另外一个线程(sql Thread ),把 Relay log 中的事件读取出来,并在本地再执行一次。

复制中线程的作用:

从节点:
1.I/O thread:从 Master 节点请求二进制日志事件,并保存于中继日志中。
2.Sql Thread: 从Relay log 中读取日志事件并在本地完成重放。
主节点:
1.Dump Thread:为每个 Slave 的 I/O Thread 启动一个 dump 线程,用于向从节点发送二进制事件。

主从复制配置过程:

主节点:

1.启用二进制日志。
2.为当前节点设置一个全局唯一的server_id。
3.创建有复制权限的用户账号 REPLIACTION SLAVE ,REPLIATION CLIENT。

从节点:

1.启动中继日志。
2.为当前节点设置一个全局唯一的server_id。
3.使用有复制权限的用户账号连接至主节点,并启动复制线程。

配置准备:

主节点:192.168.0.111
从节点:192.168.0.110
mysql版本:5.5.65-MariaDB
系统:centos7

主节点配置文件
[root@localhost ~]# vim /etc/my.cnf

打开配置文件,加入以下配置

innodb_file_per_table=NO    #关闭innodb文件独立表空间引擎 
log-bin=/var/lib/mysql/master-bin   #开启binlog日志,确保可以写入
binlog_format=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值