级联需要三个虚拟机
10.0.0.8充当master
10.0.0.18充当级联slave
10.0.0.28充当slave
在master上配置my.cnf
vim /etc/my.cnf
[mysqld]
server-id=8
log-bin
重启
systemctl restart mariadb
进入mysql创建复制用户
mysql -uroot -p000000
grant replication slave on *.* to test@'10.0.0.%' identified by '000000';
备份mysql所有,并发给两个slave
mysqldump -A -F --single-transaction --master-data=1 > /data/all.sql
scp -r /data/all.sql 10.0.0.18:/data
scp -r /data/all.sql 10.0.0.28:/data
在级联18上操作
在级联18上配置my.cnf
vi /etc/my.cnf
[mysqld]
server-id=18
log-bin
read-only
log_slave_updates #级联复制中间节点的必选项
重启mysql
systemctl restart mariadb
还原数据库
进入master发过来的文件中修改CHANGE MASTER TO行
vim /data/all.sql
CHANGE MASTER TO
MASTER_HOST='master节点的iP', #这里写master节点ip
MASTER_USER='test', #这写在master数据库中建立的用户名
MASTER_PASSWORD='000000', #这写在master数据库中建立的用户密码
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=523;
进入mysql
set sql_log_bin=0; #临时关闭二进制文件
source /data/all.sql
show master logs; #这是记录二进制位置,给第三个节点使用
set sql_log_bin=0;
start slave;
在第三个节点slave上实现
配置my.cnf
vim /etc/my.cnf
[mysqld]
server-id=28
read-only
重启mysql
systemctl restart mariadb
修改master发过来的文件
#vim /data/all.sql
CHANGE MASTER TO
MASTER_HOST='中间节点的IP', #写级联节点的ip
MASTER_USER='test',
MASTER_PASSWORD='000000',
MASTER_PORT=3306,
MASTER_LOG_FILE='mariadb-bin.000002', #写级联节点 show master logs显示的结果
MASTER_LOG_POS=344; #写级联节点 show master logs显示的结果
进入mysql执行
set sql_log_bin=0;
source /data/all.sql
start slave;
show slave status\G; #查看