Linux运维数据库篇 如何进行MySQL的主从复制和读写分离

文章目录

    • 概述
  • 一、主从复制的原理
    • 复制的类型
    • 主从复制原理
    • 配置
    • 四台数据库服务器同步时间
    • 主服务器sql配置
    • 从服务器配置
    • 检查结果
  • 二、配置读写分离
    • 1 安装jdk包和阿米巴服务
    • 2.配置读写分离
    • 检查是否读写分离
  • 总结

概述

主从复制在MySQL集群中是作为一种最为常见也最为有用的容灾机制 可以非常有效的备份数据
读写分离是对MySQL集群的最有效的优化方法,读和写分开来可以提高MySQL的效率
在生产环境种2者都是结合去使用

一、主从复制的原理

复制的类型

基于语句的复制(STATEMENT)。在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句。MySQL 默认采用基于语句的复制,效率比较高。
基于行的复制(ROW)。把改变的内容复制过去,而不是把命令在从服务器上执行一遍。
混合类型的复制(MIXED)。默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制。

主从复制原理

Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第1张图片
主MySQL服务器做的增删改,都会写入自己的二进制日志(Binary log),然后从MySQL服务器打开自己的I/O线程连接主服务器,进行读取主服务器的二进制日志,备份写入到从服务器的中继日志(Relay log)当中,然后从服务器打开SQL线程,将中继日志中的数据重放到自己的服务器中,复制完成。

配置

准备
拓扑图
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第2张图片
先安装MySQL 三台
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第3张图片
四台都关闭防火墙
在这里插入图片描述

四台数据库服务器同步时间

安装ntp 同步时间
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第4张图片
修改配置文件
在这里插入图片描述

在这里插入图片描述
主服务器开启服务,从服务器和阿米巴服务器同步主服务器时间

在这里插入图片描述
在这里插入图片描述
将时间同步添加到定时任务
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第5张图片

主服务器sql配置

在这里插入图片描述

在这里插入图片描述

重启MySQL程序

在这里插入图片描述
给从服务器授权
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第6张图片
查看主服务器在使用的2进制文件
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第7张图片
主服务配置完成

从服务器配置

修改从服务器的配置文件

在这里插入图片描述

在这里插入图片描述
重启服务
在这里插入图片描述
进入数据库指定主服务器的ip和2进制文件 启动同步
在这里插入图片描述
开启同步和查看从服务器的线程是否开启
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第8张图片
线程未开启的原因一般有四
1 网络不同
2 my.conf文件配置有问题
3 指向的主服务器的偏移量和密码 文件名 ip等
4 防火墙未关闭
另一台从服务器配置一样 只是id不同

检查结果

在主服务器中创建一个库 再去从服务器查看是否同步
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第9张图片
查看两台从服务器
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第10张图片
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第11张图片

二、配置读写分离

1 安装jdk包和阿米巴服务

读写分离需要用到阿米巴来控制服务器的读写分离 基于java开发 需要安装jdk包
将包传入opt目录中 复制到/usr/local目录 为其赋权和安装
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第12张图片
在这里插入图片描述
一直空格到底

Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第13张图片
移动文件到/usr/local/jdk下
在这里插入图片描述

修改配置文件 末行添加
在这里插入图片描述
执行配置文件 并查看版本 安装完成
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第14张图片
安装阿米巴包
在/usr/local目录下创建软件目录 并压缩到该目录中且赋权
在这里插入图片描述
在这里插入图片描述
检查是否安装完成
在这里插入图片描述

2.配置读写分离

给阿米巴进入三台服务器的权限
在这里插入图片描述
配置阿米巴服务器
在这里插入图片描述
30行修改用户名
在这里插入图片描述
32行 数据库密码
在这里插入图片描述
115行 修改为master
在这里插入图片描述
117行解注释
在这里插入图片描述
修改数据库配置文件 默认进入test库 以防mysql中没有test库时,会报错
在这里插入图片描述
23行注释
在这里插入图片描述
26号修改
在这里插入图片描述
29-30修改 数据库密码
在这里插入图片描述
45行修改 主服务器名
在这里插入图片描述
48行指定主服务器地址
在这里插入图片描述
52行指定从服务器名
在这里插入图片描述
55行指定从1的地址
在这里插入图片描述
58复制上面 修改为从2的地址
在这里插入图片描述
65行修改
在这里插入图片描述
71行修改从服务器的名称
在这里插入图片描述
启动服务并查看端口
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第15张图片

检查是否读写分离

先检测amobela是否和后端数据库对接
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第16张图片
检测读写分离
主服务器创建一个表
在这里插入图片描述
给三台服务器写入数据

在这里插入图片描述
从1
在这里插入图片描述
从2
在这里插入图片描述

查询后的数据为两个从的数据轮询的结果
Linux运维数据库篇 如何进行MySQL的主从复制和读写分离_第17张图片

总结

你可能感兴趣的:(数据库)