MySQL loop select 问题 mysql leave loop_mysql

1、主库会将所有的修改信息都保存在binlog日志中。
2、从库会生成两个线程,一个IO线程一个SQL线程。
3、主库会生成一个log dump线程用来给从库的IO线程传递binlog的信息,IO线程读取信息并保存到从库的relay log日志中
4、SQL线程读取relay log日志,并解析成sql语句逐一执行。

具体步骤:
1、在Slave 服务器上执行start slave命令开启主从复制开关,开始进行主从复制。
2、Slave服务器的IO线程会通过在master上已经授权的复制用户权限,请求连接master服务器,并请求执行binlog日志文件的指定位置(日志文件名和位置就是在配置主从复制服务时执行change master命令指定的)之后开始传输binlog日志内容。
3、Master服务器接收到来自Slave服务器的IO线程的请求后,IO线程会根据Slave服务器的IO线程请求的信息分批读取指定binlog日志文件,然后返回给Slave端的IO线程。返回的信息中除了binlog日志内容外,还有在master服务器端记录的新的binlog文件名称,以及在新的binlog中的下一个指定更新位置。
4)当Slave服务器的IO线程获取到Master服务器上IO线程发送的日志内容、日志文件及位置点后,会将binlog日志内容依次写到Slave端自身的Relay Log(即中继日志)文件(MySQL-relay-bin.xxx)的最末端,并将新的binlog文件名和位置记录到master-info文件中,以便下一次读取master端新binlog日志时能告诉Master服务器从新binlog日志的指定文件及位置开始读取新的binlog日志内容
5)Slave服务器端的SQL线程会实时检测本地Relay Log 中IO线程新增的日志内容,然后及时把Relay LOG 文件中的内容解析成sql语句,并在自身Slave服务器上按解析SQL语句的位置顺序执行应用这样sql语句,并在relay-log.info中记录当前应用中继日志的文件名和位置点