mysql主从同步过程

下面内容来源于老男孩教育

1、slave 服务器上执行start slave,开启主从复制开关。

2、此时,slave服务器的IO线程会通过在master上授权的复制用户请求连接master服务器,并请求指定binlog日志文件的指定位置(日志文件和位置就是在配置主从复制服务是执行change master命令时指定的)之后的 binlog日志内容。

3、master服务器接收来自slave服务器的IO线程的请求后,master服务器上负责复制的IO线程根据slave服务器的IO线程请求读取binlog日志文件指定位置之后的binlog日志信息,然后返回给slave端的IO线程,返回的信息中除了日志内容外,还有本次返回的日志内容后在master端的新binlog文件名称以及在binlog中的指定位置

4、当slave服务器的IO线程获取来自master服务器上IO线程发送日志内容及日志文件位置点后,将binlog日志内容依次写入到slave端自身的relay log(中继日志)文件(mysql-relay-bin.xxxx)的最末端,并将新的binlog文件名和位置记录到master-info文件中,以便下一次读取master端新的binlog日志时候能够告诉master端服务器需要从新的binlog日志的那个文件哪一个位置开始请求新的binlog日志内容

5、slave服务器的sql线程会实时的检查本地relay log 中新增加的日志内容,然后及时的把log文件中的内容解析成在master端曾经执行的SQL语句内容,并在自身的slave服务器上按语句顺序执行应用这些SQL语句

6、经过了上面的过程,就可以确保在master端和skave端执行了同样的SQL语句,当复制状态正常的情况下,master端和slave端的数据是完全一样的

mysql主从同步_mysql 主从同步