注意

mysql8.0.x前,从库将主库信息记录在master.info文件中

mysql8.0.x后,从库将主库信息记录在mysql.slave_master_info表中

主从同步流程:
    1、在从库执行change master ........ 命令

    2、从库会记录change master的信息

    3、从库执行start slave (此时从库会开启io\_t和sql\_t)  

    4、从库的io\_t读取保存的主库信息并连接主库

    5、主库会提供一个dump\_t与从库的io\_t交互

    6、io\_t会通过mi指针对比主库最新binlog位置点  

    7、主库通过dump\_t将最新的binlog通过tcp传给从库  

    8、从库接收到binlog日志先存储在tcp缓存中,并更新主库位置点信息  

    9、io\_t将tcp缓存中的数据转移到磁盘的relaylog中  

    10、sql\_t读取relay.info的信息,获取最新的relaylog位置点  

    11、sql\_t回放最新的relaylog,并再次更新relay.info  

    12、从库会自动清理历史relaylog  
这里还有一个小细节
在6、7点主从交互的过程中,类似于从库主动发起请求,询问主库是否有新的binlog,有我就拿走。