天天看點

MySQL 級聯複制(A->B->C)

這次的級聯複制是在上一篇 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 &gt; /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 &lt; 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