分享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í)有所幫助,也希望大家多多支持。