文章目录
概述
主从复制在MySQL集群中是作为一种最为常见也最为有用的容灾机制 可以非常有效的备份数据
读写分离是对MySQL集群的最有效的优化方法,读和写分开来可以提高MySQL的效率
在生产环境种2者都是结合去使用
一、主从复制的原理
复制的类型
基于语句的复制(STATEMENT)。在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句。MySQL 默认采用基于语句的复制,效率比较高。
基于行的复制(ROW)。把改变的内容复制过去,而不是把命令在从服务器上执行一遍。
混合类型的复制(MIXED)。默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制。
主从复制原理
主MySQL服务器做的增删改,都会写入自己的二进制日志(Binary log),然后从MySQL服务器打开自己的I/O线程连接主服务器,进行读取主服务器的二进制日志,备份写入到从服务器的中继日志(Relay log)当中,然后从服务器打开SQL线程,将中继日志中的数据重放到自己的服务器中,复制完成。
配置
准备
拓扑图
先安装MySQL 三台
四台都关闭防火墙
四台数据库服务器同步时间
安装ntp 同步时间
修改配置文件
主服务器开启服务,从服务器和阿米巴服务器同步主服务器时间
将时间同步添加到定时任务
主服务器sql配置
重启MySQL程序
给从服务器授权
查看主服务器在使用的2进制文件
主服务配置完成
从服务器配置
修改从服务器的配置文件
重启服务
进入数据库指定主服务器的ip和2进制文件 启动同步
开启同步和查看从服务器的线程是否开启
线程未开启的原因一般有四
1 网络不同
2 my.conf文件配置有问题
3 指向的主服务器的偏移量和密码 文件名 ip等
4 防火墙未关闭
另一台从服务器配置一样 只是id不同
检查结果
在主服务器中创建一个库 再去从服务器查看是否同步
查看两台从服务器
二、配置读写分离
1 安装jdk包和阿米巴服务
读写分离需要用到阿米巴来控制服务器的读写分离 基于java开发 需要安装jdk包
将包传入opt目录中 复制到/usr/local目录 为其赋权和安装
一直空格到底
移动文件到/usr/local/jdk下
修改配置文件 末行添加
执行配置文件 并查看版本 安装完成
安装阿米巴包
在/usr/local目录下创建软件目录 并压缩到该目录中且赋权
检查是否安装完成
2.配置读写分离
给阿米巴进入三台服务器的权限
配置阿米巴服务器
30行修改用户名
32行 数据库密码
115行 修改为master
117行解注释
修改数据库配置文件 默认进入test库 以防mysql中没有test库时,会报错
23行注释
26号修改
29-30修改 数据库密码
45行修改 主服务器名
48行指定主服务器地址
52行指定从服务器名
55行指定从1的地址
58复制上面 修改为从2的地址
65行修改
71行修改从服务器的名称
启动服务并查看端口
检查是否读写分离
先检测amobela是否和后端数据库对接
检测读写分离
主服务器创建一个表
给三台服务器写入数据
主
从1
从2
查询后的数据为两个从的数据轮询的结果