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节点下,都是小写
-
主机修改my.ini配置文件
- 必须主服务器唯一ID —> server-id=1
-
必须启用二进制日志
log-bin=D:\devSoft\mysql-5.7.26-winx64\data\mysqlbin - 可选 启用错误日志
log-err=D:\devSoft\mysql-5.7.26-winx64\data\mysqlerr - 可选 根目录
basedir=D:\devSoft\mysql-5.7.26-winx64 - 可选 临时目录
tmpdir=D:\devSoft\mysql-5.7.26-winx64 - 可选 数据目录
datadir=D:\devSoft\mysql-5.7.26-winx64\data - read-only=0 ---- 主机,读写都可以
- [可选]设置不要复制的数据库 ---- binlog-ignore-db=mysql
- [可选]设置需要复制的数据库 ----- binlog-do-db=需要复制的主数据库名字
-
从机修改my.cnf配置文件
- 必须从服务器唯一ID
- [可选]启用二进制日志
-
因修改过配置文件,请主机+从机都重启后台mysql服务
-
主机从机都关闭防火墙
-
在Windows主机上建立帐户并授权slave
-
在Linux从机上配置需要复制的主机
-
主机新建库、新建表、insert记录,从机复制
-
如何停止从服务复制功能
- stop slave;
-