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上查看

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
到這裏實驗就結束了,做的不好請諒解,如果有問題請小夥伴們留言鴨~

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