这次的级联复制是在上一篇 MySQL 的主从基础上操作的。除了这个主从之外还需要有一台安装好 MySQL 的服务器,保证是可以正常登陆运行的。
什么是级联复制?
简单理解就是 A->B->C , B 是 A 的从,C 是 B 的从。多用于主从的替换,就是 A 下马了,B,C 顶上。
环境介绍:
Blog-MySQL-1:master IP:192.168.133.128
Blog-MySQL-1: slave IP:192.168.133.132
MySQL-2:slave IP:192.168.133.130
三台机器由上至下分别是:主,从,新创建的 mysql 服务器,没有任何配置
首先需要编辑 133.132 的 my.cnf 文件,做为主从环境中的从,是不需要记录 binlog,但是想要实现级联,它就必须开启了。
vim /etc/my.cnf # 在 133.132 上操作
log-bin = mysql-bin
log-slave-updates
expire_logs_days = 7
<a href="http://s3.51cto.com/wyfs02/M02/8C/F9/wKioL1iAcEXRYFceAAAyhI9bfMk743.png" target="_blank"></a>
以上参数介绍
log-bin = mysql-bin #这个之前介绍过,要想实现级联,必须开启
log-slave-updates #这个选项跟上面一样,没有为啥必须开启
expire_logs_days = 7 #表示自动删除7天前的log文件
修改 my.cnf 后需要重启 mysqld
/etc/init.d/mysqld restart
<a href="http://s3.51cto.com/wyfs02/M00/8C/FC/wKiom1iAcEWg5rbaAAAM-HkgSzU785.png" target="_blank"></a>
登陆 133.132 的 mysql,进行锁表,并查看 binlog 文件名和 pos 位置节点
flush table with read lock;
show master status;
<a href="http://s3.51cto.com/wyfs02/M01/8C/FC/wKiom1iAcEbS1h6rAAAkftWpBhA421.png" target="_blank"></a>
另外在开一个远程端口,进行数据的备份并远程传送给 C (133.130)
mysqldump -uroot -p123456 --events -A -B > /root/test.sql
scp test.sql [email protected]:/root
<a href="http://s3.51cto.com/wyfs02/M00/8C/F9/wKioL1iAcEex_0XwAAAgZsiIhV8221.png" target="_blank"></a>
在 133.130 上将刚才的的 test.sql 文件导入到 mysql 数据库中
mysql -uroot -p123456 < test.sql
<a href="http://s3.51cto.com/wyfs02/M02/8C/FC/wKiom1iAcEfhpKbwAAAHrJ8cobY909.png" target="_blank"></a>
修改 133.130 的 my.cnf 文件,使其 server-id=3
vim /etc/my.cnf
server-id = 3
<a href="http://s3.51cto.com/wyfs02/M02/8C/FC/wKiom1iAcEjBxELHAAAJ4VadCik827.png" target="_blank"></a>
上之前一样,修改了 my.cnf 文件,需要重启mysql
<a href="http://s3.51cto.com/wyfs02/M02/8C/F9/wKioL1iAcEiw7fy2AAANT6kA7EQ777.png" target="_blank"></a>
登陆 133.130 的 mysql,配置参数
mysql -uroot –p123456
CHANGE MASTER TO
MASTER_HOST='192.168.133.132',
MASTER_PORT=3306,
MASTER_USER='yuci',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=107
返回 133.132 上解表
unlock tables;
<a href="http://s3.51cto.com/wyfs02/M00/8C/FC/wKiom1iAcEny2eeCAAAIs6U9Fnc964.png" target="_blank"></a>
在 133.130 上 开启 slave,并查看是否正常
<a href="http://s3.51cto.com/wyfs02/M01/8C/FC/wKiom1iAcEnyVMa4AABG3orjExs738.png" target="_blank"></a>
在 133.128 上登陆数据库,创建一个名为 yucitest 的数据库,查询其余的两台机器是否正常
create database yucitest;
show databases;
<a href="http://s3.51cto.com/wyfs02/M01/8C/FC/wKiom1iAcErwZqShAAAJTiSmefI680.png" target="_blank"></a>
本文转自 mlwzby 51CTO博客,原文链接:http://blog.51cto.com/aby028/1893197