mysql 5.7 docker 主從復(fù)制架構(gòu)搭建教程_MySQL

分享mysql 5.7 docker 主從復(fù)制架構(gòu)搭建教程,供大家參考,具體內(nèi)容如下

環(huán)境版本:
MySQL :? 5.7.13
docker : 1.11.2
CentOS : 7.1?

1.先在兩個(gè)物理機(jī)上分別安裝兩個(gè)MySQL.命令如下?

代碼如下:

docker pull mysql:5.7.13?
docker run –name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13?

2.在主庫(kù)上創(chuàng)建一個(gè)復(fù)制賬戶?

代碼如下:

GRANT REPLICATION SLAVE ON *.* TO ‘rep1’@’192.168.2.103’ IDENTIFIED BY ‘qaz.00JK’;

復(fù)制賬戶為: rep1
指定從庫(kù)的IP必須為: 192.168.2.103?
復(fù)制密碼為: qaz.00JK?

3.修改主庫(kù)的配置文件 (麻煩,應(yīng)該有更方便的修改方式)?

3.1先從docker拷貝配置文件到主機(jī)/root 目錄:??

docker cp anuo-mysql:/etc/mysql/my.cnf /root?

3.2在主機(jī)打開(kāi) my.cnf , 在 [mysqld] 節(jié)點(diǎn)最后加上?

log-bin=mysql-bin?
server-id=1?

3.3 再把此文件上傳到docker mysql 里面覆蓋?

docker cp /root/my.cnf? anuo-mysql:/etc/mysql/my.cnf?

3.4 重啟 mysql 的docker , 讓配置生效
docker restart anuo-mysql

4. 修改從庫(kù)的配置文件?

跟第三步一樣, 唯一不同是?
server-id=2

5. 開(kāi)始備份, 在主庫(kù)執(zhí)行以下命令, 讓主庫(kù)所有表置于只讀不能寫(xiě)的狀態(tài), 這樣達(dá)到主從庫(kù)數(shù)據(jù)一致性?

FLUSH TABLES WITH READ LOCK;?

6. 將主庫(kù)的數(shù)據(jù)庫(kù)備份在從庫(kù)還原

用navicat for mysql 很方便操作

7. 從庫(kù)還原后, 釋放主庫(kù)的讀鎖, 這樣主庫(kù)恢復(fù)寫(xiě)權(quán)限

unlock tables;?

8.配置從庫(kù)連接主庫(kù), 在從庫(kù)上執(zhí)行??

 CHANGE MASTER TO  MASTER_HOST='192.168.2.108',  MASTER_PORT=3306,  MASTER_USER='rep1',  MASTER_PASSWORD='qaz.00JK',  MASTER_LOG_FILE='mysql-bin.000002',  MASTER_LOG_POS=898;  

最后兩項(xiàng)?
MASTER_LOG_FILE 和? MASTER_LOG_POS?
在主庫(kù)執(zhí)行 : SHOW MASTER STATUS; 命令可以取得?
對(duì)應(yīng)的字段是 File 和 Position

9. 在從庫(kù)啟動(dòng) slave 線程開(kāi)始同步
START SLAVE;

10.在從庫(kù) 查看同步狀態(tài)?
show slave status;?
如果看到 Slave_Io_State 字段有 :?

Waiting for master to send event …??
那就成功了 ! ! !

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員