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上查看
到這裏實驗就結束了,做的不好請諒解,如果有問題請小夥伴們留言鴨~