主从复制流程
		
	
主从复制原理图

    准备工作

  1. 主从的MySQL版本需一致,搭建前需要从库无数据或主从数据一致 (主服务)同步数据到从库
    systemctl stop mysqld
    rm -f /usr/local/mysql/data/auto.cnf
    rsync -av /usr/local/mysql/data root@[从库所在主机的IP地址]:/usr/local/mysql/
  2. 搭建主从架构-AB复制

  3. (主服务)编辑配置文件vim /etc/my.cnf
  4. (从服务)编辑配置文件vim /etc/my.cnf
  5. (主服务)启动MySQL服务
    systemctl start mysqld
  6. (主服务)创建用于主从架构的MySQL账号
    CREATE USER 'slave'@'%' IDENTIFIED WITH 'caching_sha2_password' BY '123456';
    grant replication slave,replication client on *.* to 'slave'@'%';
  7. (主服务)停止MySQL服务
    systemctl stop mysqld
  8. (主服务)删除auto.cnf文件
    rm -f /usr/local/mysql/data/auto.cnf
  9. (主服务)如果主从数据不一致,同步主库数据到从库
    rsync -av /usr/local/mysql/data root@[从库主机IP地址]:/usr/local/mysql/
  10. (主服务)启动MySQL服务
    systemctl start mysqld
  11. (从服务)如果data目录是从主库同步过来的,需要修改文件权限
    chown -R mysql.mysql /usr/local/mysql
    (从服务)启动MySQL服务
    systemctl start mysqld
  12. (主服务)加锁,如果接下来没有增删改查等操作,可以不加锁
    flush tables with read lock;
  13. (从服务)设定指向主服务的数据节点
    change replication source to
    	source_host='[主服务的主机IP地址]',
    	source_port=3306,
    	source_user='slave',
    	source_password='123456',
    	source_log_file='binlog.000002',
    	source_log_pos=1207;
    			
    注:source_log_file和source_log_pos的值需要在主服务执行show master status;获取
  14. (从服务)启动主从复制
    start slave;
    (从服务)查看主从状态
    show slave status\G
    确认主从是否正常
    Slave_IO_Running:Yes
    Slave_SQL_Running:Yes
    Seconds_Behind_Master:0
    可能的报错:
    mysql> start slave;
    ERROR 1872 (HY000): Slave failed to initialize relay log info structure from 
    the repository
    尝试解决:在从库上删除relay-log.info,重新执行上一步
    			
  15. (主服务)解锁,如果没有加锁则跳过
    unlock tables;
  16. 测试
    在主服务中执行增删改,观察从服务是否同步