原理
主数据库进行增删改操作后,相应的操作语句会记录到binlog日志文件中。从数据库会请求主数据库的binlog日志文件,获取到新的操作语句,然后在自己的从数据库上自动执行相同的操作语句,进而实现主从的同步。
过程
- Master开启bin-log功能,binlog日志文件用于记录数据库的增删操作。
- 需要开启三个线程,Master:I/O线程;Slave:I/O线程,SQL线程。
- Slave start;通过I/O线程连接Master,并且请求某个bin-log,position之后的内容。
- Master服务器收到Slave I/O线程发过来的日志请求信息,然后Master
I/O线程将bin-log内容、position返回给Slave IO线程。 - Slave服务器收到bin-log日志内容,将bin-log日志内容写入到relay-log中继日志,创建一个master.info文件,该文件记录master IP、用户名、密码、master bin-log名称、bin-log position。
- Slave已经开启了sql线程,由sql线程实时监测relay-log日志内容是否有更新,如果有更新,则解析文件中的sql语句,并在Slave数据库中执行相同的操作语句。