前言
本文主要纪录了MySQL主从复制原理、基本原则和一主一从主从配置的流程。
基本原理
MySQL数据同步
slave会从master读取binlog来进行数据同步,因为需要读取文件所以有延迟。
MySQL复制过程
- master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;
- slave将master的binary log events拷贝到它的中继日志(relay log);
- slave执行中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的
基本原则
- 每个slave只有一个master。
- 每个slave只能有一个唯一的服务器ID。
- 每个master可以有多个salve
- 复制的最大问题:延时
一主一从常见配置
mysql版本一致且后台以服务运行。主从均配置在[mysqld]结点下,都是小写。这里主机用的win10系统。
主机修改配置文件
在[mysqld]下配置。
1 | [mysqld] |
从机修改配置文件
1 | [mysqld] |
启动主从数据库服务
1 | # 启动mysql |
关闭防火墙
1 | systemctl stop firewalld |
在主机上建立帐户并授权slave
- 创建用户并授权
1
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
- 查询master的状态。
记录下File和Position的值(会用到),执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化。1
show master status;
在从机上配置需要复制的主机
配置需要复制的主机
1
2
3
4
5
6
7
8CHANGE MASTER TO MASTER_HOST='主机IP',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position数字;
CHANGE MASTER TO MASTER_HOST='192.168.1.103',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysqlbin.000003',MASTER_LOG_POS=1616;
启动从服务器复制功能
start slave;
停止从服务复制功能
stop slave;查看主从配置是否成功
1
show slave status;
出现以下两点即成功。
如何重新配置主从
在从库中执行以下语句,重新开始第6步即可。
1 | stop slave; |