首先明白如何实现的数据同步
(1) 主服务器记录二进制日志
- 当主服务器上有写操作(如 INSERT、UPDATE、DELETE 等)时,这些操作会被记录到主服务器的 Binary Log 中。
- Binary Log 是一种逻辑日志,记录了所有对数据库的更改操作(以事件的形式存储)。
(2) 从服务器请求主服务器的日志
- 从服务器启动后,会通过一个专门的线程(I/O Thread )连接到主服务器。
- I/O Thread 向主服务器发送请求,获取主服务器的 Binary Log 中尚未同步的部分。
- 主服务器接收到请求后,会通过一个专门的线程(Binlog Dump Thread )将 Binary Log 的内容发送给从服务器。
(3) 从服务器保存日志到中继日志
- 从服务器接收到主服务器的 Binary Log 后,将其保存到本地的 中继日志(Relay Log) 中。
中继日志的作用是作为中间存储,供后续的 SQL 应用线程使用。
(4) 从服务器重放日志
- 从服务器启动另一个线程(SQL Thread ),读取中继日志中的内容,并将其重放到从服务器的数据库中。
具体实现
- 首先设置主服务器my.cnf文件,指定写入的binarylog的文件位置。
- 设置从服务器用来访问主服务器的角色和权限。
- 设置从服务器的Replaylog的文件位置。
- 在从服务器中连接主服务器
- 在从服务器上启动复制