一、主从复制的工作原理
mysql在master与slave之间实现整个复制的过程是由3个线程来完成的,其中两个线程(sql线程和io线程)在slave端,另外一个线程(io线程)在master端
注:要实现mysql的复制必须首先打开master端的binary log(也就是二进制日志),否则无法实现
mysql复制的基本过程如下:
(1)slave上面的io线程发起连接,并请求指定日志文件的位置
(2)master接收到来自slaveio线程的请求后,通过负责复制的io线程(即masterio线程)根据这个请求信息指定日志的位置,把这个信息返回给slave的io线程(返回信息)
(3)slave的io线程接收到master端的返回信息之后,将日志内容依次写入slave端的relay log文件(mysql-relay-bin.xxx)当中,并且读取到master端的bin-log文件和位置,记录到master=info文件中,以便下一次能够清楚地告诉master从哪个位置开始传bin-log的内容
(4)slave的sql线程检测:relay log增加内容后,马上解析master二进制文件中的内容,并且执行里面的query语句
二、具体操作