MySQL主从可以实现MySQL的读写分离,简言之,master上进行写操作,同步数据库,slave上进行读操作,可以极大的提升性能,降低服务器负载。术语:主从复制——master slave replication(M-S模式)。
用途
- 备份
- 读写分离
- 高可用和故障切换(需要做HA)
- MySQL升级测试
原理
实际上,它的原理思路很简单。MySQL 中有一种日志叫做 bin 日志(二进制日志),这个日志会记录下所有修改了数据库的SQL语句。主从复制的原理其实就是"从"服务器向"主"服务器请求这个日志文件,"主"服务器会把这个 bin 日志复制到"从"服务器上执行一遍,这样"从"服务器上的数据就和"主"服务器上的数据相同了。
流程图:
图解:
- 主服务器必须启用二进制日志(log-bin),记录任何修改了数据库数据的事件;
- 从服务器开启一个线程(I/O Thread)把自己扮演成 MySQL 的客户端,通过 MySQL 协议,请求主服务器的二进制日志文件中的事件;
- 主服务器启动一个线程(Dump Thread),检查