MySQL主從叢集搭建實戰
阿新 • • 發佈:2020-08-15
關於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_FILE
和 MASTER_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的搭建過程同上。
到此,主從複製叢集搭建完成。