MySQL主从复制是一种异步、基于日志的、单向的数据库复制技术,它通过在主服务器上启用二进制日志(binlog)并将其发送给一个或多个从服务器,实现了从服务器与主服务器之间的数据同步。以下是MySQL主从复制原理的详细解释:
一、主服务器(Master)操作
- 启用二进制日志:主服务器需要启用二进制日志功能,并记录所有的数据库变更操作。这些操作包括数据的增、删、改等,都会被顺序地写入到二进制日志文件中。
- 日志写入:当主服务器上的数据库发生变更时,这些变更会被实时地记录到二进制日志中。二进制日志文件按照时间顺序排列,包含了所有数据库操作的记录。
二、从服务器(Slave)操作
- 连接主服务器:从服务器通过I/O线程连接到主服务器,并请求复制数据。这个连接过程通常是通过执行
CHANGE MASTER TO
语句来完成的,该语句提供了主服务器的连接信息以及二进制日志的起点位置。 - 获取二进制日志:主服务器在接收到从服务器的请求后,会为其启动一个dump线程。这个线程负责读取二进制日志中的内容,并将其发送给从服务器的I/O线程。从服务器的I/O线程在接收到这些日志内容后,会将其写入到本地的中继日志(relay log)文件中。
- 执行日志内容:从服务器的S