MySQL5.7.36之主从复制部署安装-centos7

主库是192.168.31.209:3306
从库是192.168.31.210:3308、192.168.31.209:3307、192.168.31.210:3309、192.168.31.211:3310、192.168.31.211:3311

切记:不管是主库还是从库,server_id一定不能重复

1、主库创建复制账号及授权

create user 'repl'@'%' identified by '7E%mAt8mbZXQC1xy';
grant replication slave on *.* to 'repl'@'%';

2、从库采用help change master to查看配置

CHANGE MASTER TO
MASTER_HOST='192.168.223.126',
MASTER_USER='repl',
MASTER_PASSWORD='7E%mAt8mbZXQC1xy',
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1,
MASTER_CONNECT_RETRY=10;

3、在从库上面开启复制

start slave; #开启从服务
reset slave; #重置从服务 删除master.info,relay-log.info数据;删除所有relay log;将延迟选项master_delay设置为0;
reset master; #删除所有的二进制日志文件
stop slave; #停止从服务
start slave io_thread; #开启io线程
start slave sql_thread; #开启sql线程
stop slave io_thread; #停止io线程
stop slave sql_thread; #停止sql线程
show processlist;

4、查看从库状态

show slave status \G;
Master_Host: 192.168.0.15 #主库ip
Master_User: repl #主库用户
Master_Port: 3318 #主库端口号
Connect_Retry: 10 #失败链接次数
Master_Log_File: mysql-bin.000005 #当前从库io_thread正在读取主库的二进制日志文件
Read_Master_Log_Pos: 1525 #当前从库io_thread正在读取主库二进制日志文件位置
Relay_Log_File: localhost-relay-bin.000006 #当前从库sql_thread正在读取从库的中继日志文件
Relay_Log_Pos: 1738 #当前从库sql_thread正在读取从库中继日志文件位置
Relay_Master_Log_File: mysql-bin.000005 #当前从库sql_thread从relay-log中读取的正在进行的SQL语句,对应主库的sql语句是在哪个binlog中
Exec_Master_Log_Pos: 1525 #从库sql_thread当前执行的事件,对应主库的binlog中的position
Seconds_Behind_Master: 0 #主从复制延迟的时间,如果是0表示主从无延迟
Last_IO_Error:  #显示io线程错误信息
Last_SQL_Error:  #显示sql线程错误信息
SQL_Delay: 0 #延迟复制
Retrieved_Gtid_Set: 1864fb2f-54d7-11ed-81c4-000c2991c366:1-15 #当前io_thread已经接收到的binlog
Executed_Gtid_Set: 1864fb2f-54d7-11ed-81c4-000c2991c366:1-15,
59d4fb2f-54d8-11ed-8d61-000c29fb87c6:1-3 #当前从库sql_thread执行的二进制日志位置

5、主从工作原理

MySQL5.7.36之主从复制部署安装-centos7_第1张图片

a、在从库上执行change master to;会将主库的信息保存到从库中的master.info文件中

b、在从库上执行start slave;开启io_thread及sql_thread线程;

c、io_thread开始工作;io_thread通过master.info文件中主库的连接信息去连接主库;连接成功后主库就会开启dump_thread线程;

d、dump_thread读取主库新产生的二进制日志;然后投递给从库io_thread线程

e、io_thread线程接收到dump_thread线程投递的新的二级制日志,将日志写入到relay_log(中继日志)

f、io_thread就会等待主库dump_thread主动把新产生的二进制日志投递过来

g、sql_thread线程会将relay_log新产生的日志回复到数据库,写到磁盘

你可能感兴趣的:(MySQL5.7.36,高可用,安全,数据库,mysql)