Mysql主从复制

REPLICATION的原理

简单的说就是master将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据操作
在这里插入图片描述
DML:SQL操作语句,update, insert,delete
Relay log :中继日志

部署Mysql主从复制 (M-S-S模型)

1.三台主机修改主机名
hostnamectl set-hostname 主机名
bash
2.在master上授用户,创建库和表
进入mysql,输入以下命令
grant replication slave on . to repl@‘192.168.100.%’ identified by ‘123456’;
create database ml;
use ml;
create table asd(id int,name varchar(20));
3.修改配置文件,重启mysql
vim /etc/my.cnf

server-id=1
binlog-do-db=HA
log-bin=mysql-bin-master
binlog-ignore-db=mysql
sync-binlog=1
binlog-format=row

在这里插入图片描述

systemctl restart mysqld ##重启
4,导出库完整备份,复制到中继和slave上
mysqldump -uroot -B ml>ml.sql
scp ml.sql 192.168.100.20:/root
scp ml.sql 192.168.100.30:/root
5,换到中继服务器上,导入数据库ml.sql,在修改配置文件重启mysql
mysql -uroot < ml.sql
vim /etc/my.cnf
添加以下
server-id=2
log-slave-updates=1
log-bin=mysql-bin-slave1

Systemctl restart mysqld #重启
6.授权,查看状态
Mysql
Stop slave;
change master to master_host=‘192.168.100.10’,master_user=‘repl’,master_password=‘123456’;
Start slave;
show slave status \G #查看状态,结果是两个yes才是对
在这里插入图片描述
7.在中继再授权一个用户给slave2
grant replication slave on . to ‘repl’@‘192.168.100.%’ identified by ‘123456’;
8.在slave2上配置
mysql -uroot < ml.sql 导入数据库
vim /etc/my.cnf 修改配置文添加以下
server-id = 3
log-bin=mysql-bin-slave2
binlog-format=row

Systemctl restart mysqld #重启mysql
9.指定中继服务作为slave2的主
Mysql #进入mysql
Stop slave;
change master to master_host=‘192.168.100.20’,master_user=‘repl’,master_password=‘123456’;
Start slave;
Show slave status\G #查看状态
在这里插入图片描述
10,测试,在主上插入数据,在中继和slave2上查看

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
到这里实验就结束了,做的不好请谅解,如果有问题请小伙伴们留言鸭~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章