1. 程式人生 > 實用技巧 >MySQL主從叢集搭建實戰

MySQL主從叢集搭建實戰

關於MySQL主從叢集搭建,前面已經有一篇文章--MySQL主從叢集搭建講過,文中是在同一個機器上搭建的,並且當時以主庫上沒有原始資料為例介紹的。

本文介紹的場景,是主庫上已經有資料了,更貼近實際生產環境的應用場景。

將要搭建的叢集例項資訊如下:

角色 IP
主庫 192.168.1.81 3306
從庫1 192.168.1.82 3306
從庫2 192.168.1.83 3306

1.備份主庫資料

在主庫上執行備份:

$mysqldump --master-data=2 --single-transaction --default-character-set=utf-8 -R --triggres -A >backup.sql

其中,
--master-data=2代表備份時刻記錄master的Binlog位置和Position,
--single-transaction意思是獲取一致性快照,-R意思是備份相關的儲存過程,--triggres的意思是備份觸發器相關資訊,-A代表備份所有schema。

2.建立複製使用者

在主庫上建立複製使用者:

mysql>grant replication slave on *.* to 'repl'@'192.168.1.%' identified by '123456';

3.檢視主庫上備份時刻的日誌位點

檢視MASTER_LOG_FILEMASTER_LOG_POS

$ head -n 30 backup.sql |grep -i "CHANGE MASTER TO"

--CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000020', MASTER_LOG_POS=178;

4.將備份複製到從庫

$ scp backup.sql ip82:/home/mysql/
$ scp backup.sql ip83:/home/mysql/

5.搭建從庫

首先在從庫ip82恢復資料:

$ mysql -f –default-character-set=utf-8 <backup.sql

接著,配置複製資訊:

$ mysql –S /tmp/mysql_3306.sock

msql>change master to master_host='192.168.1.181',master_user='repl',master_ password='123456', master_Port=3306,MASTER_LOG_FILE='mysql-bin.000020', MASTER_LOG_POS=178;

最後,開啟複製

mysql >start slave;

檢視複製狀態:

> show slave status\G;
Master_Host: 192.168.1.81
Master_User: repl
Master_Port: 3306
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
... ....

從庫83的搭建過程同上。

到此,主從複製叢集搭建完成。