一、相关概念
二、配置一主一从
三、配置一主多从
四、配置主从从
五、配置主主结构
六、配置半同步复制模式
一、相关概念
1.1 主从同步介绍:
存储数据的服务结构,分为2种角色:
主服务器(master):接受客户端访问连接
从服务器(slave):自动同步主服务器数据
1.2主从同步工作原理:
![](https://img-blog.csdnimg.cn/img_convert/78bd48cb9600db3ddc265ffab2d43607.png)
主服务器:启用binlog日志
从服务器:
IO线程:复制master主机binlog日志文件里的SQL命令保存到中继日志文件里。
SQL线程:执行中继日志文件里的SQL语句,实现与Master数据一致。
1.3常用的主从同步结构:
一主一从结构
一主多从结构
主从从结构
主主结构
1.4 配置步骤:
配置master服务器
1 启用binlog日志
2 用户授权
3 查看日志信息
配置slave服务器
1指定server_id 并重启mysqld 服务
2 指定主服务器信息(如果数据不一样,要先确保数据一致)
3启动slave进程
4查看状态信息
二、配置一主一从同步结构
服务器说明:
master1 (主服务器)
slave1 (从服务器)
第一步配置master1(主)服务器,具体操作如下:
![](https://img-blog.csdnimg.cn/img_convert/fce8213348703ca79fa18ddd7434da3f.png)
打开MySQL配置文件
![](https://img-blog.csdnimg.cn/img_convert/35d6fd6d77f6bb3e9d581f72021cecbd.png)
写明serverID和开启binlog日志保存退出
![](https://img-blog.csdnimg.cn/img_convert/e2597cb5c0b68835d82d10563774d855.png)
重启MySQL服务
![](https://img-blog.csdnimg.cn/img_convert/333464a218632781715fd909fa22a690.png)
管理员用户登陆数据库
![](https://img-blog.csdnimg.cn/img_convert/9c9bea35fb49dc715ec2fd61af25abfe.png)
添加用户授权
![](https://img-blog.csdnimg.cn/img_convert/0bfdb8ce27bb23f4cf289f2ea4cde34d.png)
查看到的日志名和偏移量是给从服务器使用的
第二步配置slave1(从)服务器 :
![](https://img-blog.csdnimg.cn/img_convert/5c17110e310931821b0ffc8cc4f29d30.png)
打开数据库配置文件
![](https://img-blog.csdnimg.cn/img_convert/74b74faf0eacc90afa0db87a7031a3f6.png)
指定serverID (主从结构中serverID不能重复)
![](https://img-blog.csdnimg.cn/img_convert/220060fe401d5b80a662398ace57500a.png)
重启MySQL服务
![](https://img-blog.csdnimg.cn/img_convert/ea70768c118e3f40232eac80a191136a.png)
管理员登陆数据库
![](https://img-blog.csdnimg.cn/img_convert/dbc01036c9f92336917fd1e033d3d3bb.png)
日志名和偏移量按照自己的主服务器值输入
![](https://img-blog.csdnimg.cn/img_convert/c609f185ee328cc7cc0f33b7fd176374.png)
启动slave进程
![](https://img-blog.csdnimg.cn/img_convert/be05d1b230843baf24829e0c26cec388.png)
查看slave状态,IO和SQL线程都是yes状态就可以
三 、配置一主多从同步结构
服务器说明:
master1 (主服务器)
slave1 (从服务器)
slave2 (从服务器)
在一主一从的结构基础上加一台MySQL服务器(slave2)
配置slave2:
![](https://img-blog.csdnimg.cn/img_convert/1c6e9165e74b388cd76eb595ef8811f5.png)
打开slave2配置文件
![](https://img-blog.csdnimg.cn/img_convert/3478050aaa9e4ac706807d9127aa10a5.png)
指定serverID(不与之前主从结构ID重复)
![](https://img-blog.csdnimg.cn/img_convert/3d2598d6b49a094d2f1ddbb58c6249e7.png)
重启slave2的MySQL服务
![](https://img-blog.csdnimg.cn/img_convert/be84418abc4437828689f5c36b2874dd.png)
把master1的库做完全备份拷贝给slave2
![](https://img-blog.csdnimg.cn/img_convert/99351d939f7a8306407d0fd3fc1a9185.png)
slave2使用备份文件恢复数据并在备份文件里查看日志名和偏移量
![](https://img-blog.csdnimg.cn/img_convert/5c5d3f44c5d6d6eeb350844c4156c4e6.png)
管理员登陆slave2的数据库
![](https://img-blog.csdnimg.cn/img_convert/939a10b8ce8c40dc2fe493df865e6358.png)
使用并在备份文件里查看到的日志名和偏移量
![](https://img-blog.csdnimg.cn/img_convert/4b29f90e64bee5139c45054c7d4e5cbc.png)
启用slave进程
![](https://img-blog.csdnimg.cn/img_convert/dfc5ea384f508b20d8e828ee3d96166a.png)
查看slave状态,slave2的IO线程和SQL线程都是yes 一主多从就搭建好了
四、配置主从从同步结构
主从从结构: 给一主一从结构中的从服务器也配置从服务器
服务器说明:
master1 (第一个主服务器)
ms1 (master的从服务器,slave1的主服务器)
slave1 (ms1的从服务器)
配置master1:
![](https://img-blog.csdnimg.cn/img_convert/83edaa30853bcc201dc2681336fb56ec.png)
打开master1的MySQL配置文件
![](https://img-blog.csdnimg.cn/img_convert/47c31bda10bd07cf66354149bee81d75.png)
指定serverID并开启binlog日志
![](https://img-blog.csdnimg.cn/img_convert/616e6104f83b52e884fc563d82d81092.png)
重启MySQL服务
![](https://img-blog.csdnimg.cn/img_convert/a8ad9f6a4f3ce01dcc399de4b5ec1ddc.png)
管理员登陆server1的数据库
![](https://img-blog.csdnimg.cn/img_convert/4f9ccd80a3e26548736a92019bff4769.png)
添加用户授权
![](https://img-blog.csdnimg.cn/img_convert/f2b17b71b7c653405710780a2bc0dde4.png)
查看日志信息和偏移量
配置ms1:
![](https://img-blog.csdnimg.cn/img_convert/3e3d7bd0a5d5b778c19b3d3c6a8e2704.png)
打开MySQL配置文件
![](https://img-blog.csdnimg.cn/img_convert/8c4d05dc714a874f72e64bdd594c7dcd.png)
指定serverID,打开binlog日志并且允许级联复制
![](https://img-blog.csdnimg.cn/img_convert/438fb4afcc68a4c0786afa77ea05263b.png)
重启数据库服务并用管理员登陆数据库
![](https://img-blog.csdnimg.cn/img_convert/59975168939db520e106b2dcda46cf35.png)
使用master1查看的日志名和偏移量
![](https://img-blog.csdnimg.cn/img_convert/6c8713702b76b74d717e6bd1d8da9b2b.png)
启用slave进程并查看slave状态(IO线程和SQL线程状态必须都为yes)
![](https://img-blog.csdnimg.cn/img_convert/c9c052825580a712faf55c5a8d05f148.png)
添加用户授权
![](https://img-blog.csdnimg.cn/img_convert/0d25a30b775b9d38d00ecc74a080b9af.png)
查看日志名和偏移量
配置slave1:
![](https://img-blog.csdnimg.cn/img_convert/458c95eb85f8282e0ef0d30c98367edf.png)
打开MySQL配置文件
![](https://img-blog.csdnimg.cn/img_convert/50e2caa68e5ebc190e4d62262ff5b8d7.png)
指定serverID
![](https://img-blog.csdnimg.cn/img_convert/741ce4065f6fe97c97afe44eb1246444.png)
重启数据库服务并用管理员登陆数据库
![](https://img-blog.csdnimg.cn/img_convert/fecafae0d6af8de63d253c8621079708.png)
指定ms1的日志名和偏移量以及IP地址
![](https://img-blog.csdnimg.cn/img_convert/3a0b7e64732aa03294d016e8b743a8fc.png)
打开slave进程并且查看slave状态(IO线程和SQL线程的状态)
五、配置主主同步结构
主主结构也叫互为主从。
服务器介绍:
ms1 (ms2的主,同为ms2的从)
ms2 (ms1的从,同为ms1的主)
配置ms1和ms2(相同配置。serverID,IP地址,日志名,偏移量不一致):
![](https://img-blog.csdnimg.cn/img_convert/dba10ad0797bee4159dff4268f5fab6d.png)
打开MySQL配置文件
![](https://img-blog.csdnimg.cn/img_convert/9d05f770c93f951100015e51d6e97c1f.png)
指定serverID并打开binlog日志 (ms2换成52即可)
![](https://img-blog.csdnimg.cn/img_convert/5a2dc4b11f9590378f704ce8a9f27a7e.png)
重启数据库服务,管理员用户登陆数据库
![](https://img-blog.csdnimg.cn/img_convert/0ac3d77c031a13534d1820e8a34142a1.png)
添加用户授权
![](https://img-blog.csdnimg.cn/img_convert/0aaab73e8574cea101a2b49e505166eb.png)
查看日志名和偏移量
![](https://img-blog.csdnimg.cn/img_convert/b2bb7f7bf2ae529950484740b489abc7.png)
指定另一个服务器的IP,日志名,偏移量
![](https://img-blog.csdnimg.cn/img_convert/db91907c12a4206cc0b521f3e7e7d09c.png)
打开slave进程,查看slave状态(IO线程和SQL线程状态)
六、配置主从同步复制数据工作模式
支持的工作方式:
第1种 异步复制模式(默认)
主服务器执行完一次事务后,立即将结果返给客户端,
不关心从服务器是否已经同步数据。
第2种 半同步复制模式
主服务器在执行完一次事务后,等待至少一台从服务器同步数据完成,
才将结果返回给客户端。
永久配置编辑主配置文件:
![](https://img-blog.csdnimg.cn/img_convert/53deb2a339825478420da8a1debaadb7.png)
打开mysql配置文件
![](https://img-blog.csdnimg.cn/img_convert/4eb98cf58c9a2a3ef97a4fa36ebeb7f7.png)
在配置文件添加“配置模块”和“启用模块”
![](https://img-blog.csdnimg.cn/img_convert/b691a0adcffd25a7439f70a54253cb53.png)
重启数据库服务,管理员登录
![](https://img-blog.csdnimg.cn/img_convert/154277e6ef7dd9b36c1fb6d86613077f.png)
模糊匹配,查看到模块是启用状态即可