一、MySQL主从复制原理
在实际的生产中,为了解决Mysql的单点故障以及提高MySQL的整体服务性能,一般都会采用主从复制。
比如:在复杂的业务系统中,有一句sql执行后导致锁表,并且这条sql的的执行时间有比较长,那么此sql执行的期间导致服务不可用,这样就会严重影响用户的体验度。主从复制中分为「主服务器(master)「和」从服务器(slave)」,「主服务器负责写,而从服务器负责读」,Mysql的主从复制的过程是一个「异步的过程」。这样读写分离的过程能够是整体的服务性能提高,即使写操作时间比较长,也不影响读操作的进行。
主从复制的原理
1.主要基于MySQL二进制日志
2.主要包括三个线程(2个I/O线程,1个SQL线程)
二、MySQL的主从复制(一主两从)
Master配置
1.配置mysql的主配置文件my.cnf文件,为server_id设置值并开启binlog参数,启用日志功能
[root@localhost ~]# vi /etc/my.cnf
log_bin=master_bin
server_id=1
systemctl restart mysqld
2.创建slave用户并赋予权限
mysql> grant replication slave on *.* to 'slave_name'@'slave_ip' identified by 'password';
slave_name:从库登入主库时的用户名
slave_ip:从库的ip地址
password:从库登入主库时的密码
3.主库设置锁表,为后面备份准备(要记得提前申请停机时间)
flush tables with read lock;
3.查看主库状态,
show master status;
#查看当前日志文件名和二进制日志偏移量
Slave_IO_Running: Yes
Slave_SQL_Running: Yes有以上两条信息即为成功。
Slave01,Slave02 配置同Master相似