一、理解MySQL主从复制原理
1、什么是主从复制?
主从复制是用来建立一个和 主数据库完全一样的数据库环境称为从数据库,主数据库一般是准实时的业务数据库。
2、主从复制作用
我们来思考如果在企业网站中,后端MYSQL数据库只有一台时候,会有以下问题:
1、单点故障服务不可用
2、无法处理大量的并发数据请求
3、数据丢失
所以通过主从复制后,它的优点就很明显
1、如果主节点出现故障,那么我们就直接将服务切到从节点,来保证服务立马可用。
2、如果并发请求特别大的时候,我们可用进行读写分离操作,让主库负责写,从库负责读.
3、如果主库数据丢失,但从库还保存一份,减少数据丢失的风险
3、主从复制原理
(1) Master的更新事件(update、 inset、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启binlog dump线程,该线程会去读取bin-log日志
(2) Slave连接到Master后,Slave库有一个/0线程 通过请求binlog dump thread读取binog日志,然后写入从库的relay log日志中.
(3) Slave还有一个 SQL线程,实时监控 relay-log日志内容是否有更新,解析文件中的SQL语句,在Slave数据库中去执行.
总结
(1)既然是要把事件记录到bin-log日志,那么对于Master就必须开启bin-log功能。
(2) 整个Mysgl主从复制一共开启了3个线程。Master开启 10线程,Slave开启10线程 和 SQL线程
3)这点也很重要那就是Master和Slave交与的时候,记住这里是Slave去请求Master,而不是Master主动推给Slave。 Slave通过10线程连接Master后发起请求,Master服务器收到Slave 10线程发来的日志请求信息,io线程去将bin-log内容返回给slave 10线程
二、完成MySQL主从复制。
修改主库配置文件my.cnf
重启数据库 授权给从库
修改从库配置文件my.cnf
配置主数据库和logbin
启动从数据库服务
查看从数据库状态,启动IO和SQL线程