MySQL 主从同步

一、需求

MySQL主从同步可以实现读写分离,用以减轻主库负载.

二、原理知识

在简单的一主一从的同步机制中。主库有IO线程用于mysql-bin的读写,从库有IO线程用于向主库请求mysql-bin 和 SQL线程解析mysql-bin。

三、实现主从同步

首先主库要打开log-bin。其他步骤如下

1.复制数据

(1)主库

把主库数据mysqldump到SQL文件,确保主从有完整数据
 mysqldump  --master-data=1  然后  grep -n 'CHANGE MASTER' md.sql 也可拿到主从复制对接点
 -x 加所有库的只读锁 -l 加所有表的只读锁 跟 with read lock只读锁效果一样

--master-data=1后 SQL文件中CHANGE MASTER TO 打开注释,SQL将自动包含日志的文件及位置

--master-data=2后 SQL文件中CHANGE MASTER TO 加上注释,需要手动获得复制对接点
 flush table with read lock; 加只读锁
 unlock tables;

(2)从库

mysql 命令导入SQL文件

2.在主库建立专门用于同步的账号


   grant replication slave on *.* to rep@localhost identified by 'rep';
   flush privileges;


3.在从库设定主库


 在主库执行 show master status; show master lgos;拿到主从复制对接点
 在从库执行change master to ...
 如果 change master to ... 执行有错误,需要先停止slave:stop slave;


4.从库start slave

检查从库状态

 show slave status G; 

按图示 3-4-5-6  的顺序重复执行来达到主从同步的目的

原文地址:https://www.cnblogs.com/zhengwenqiang/p/7994504.html