MySQL
版本: 5.7
程序目錄: /root/mysql
高可用方式:
- 雙主 + VIP 兩個(gè) MySQL 雙主同步父款,一臺(tái)對(duì)線上提供服務(wù)步责,另一臺(tái)冗余以保證高可用变勇,KeepAlived 存活探測(cè),相同 Virtual IP 提供服務(wù)既荚。
- 自動(dòng)故障轉(zhuǎn)移:當(dāng)寫庫掛了的時(shí)候稚失,KeepAlived 能夠探測(cè)到,會(huì)自動(dòng)的進(jìn)行故障轉(zhuǎn)移恰聘,由于使用的是相同的virtual IP句各,這個(gè)切換過程對(duì)調(diào)用方是透明的。
服務(wù)器 | 說明 | 端口 | 讀寫 |
---|---|---|---|
19.50.79.28 | 主庫1 | 3000 | 可讀可寫 |
19.50.79.27 | 主庫2 | 3000 | 可讀可寫 |
配置修改
mysql/master1/.env
和mysql/master2/.env
環(huán)境變量根據(jù)實(shí)際情況修改
MSYQL環(huán)境配置修改.png
主庫 1 19.50.79.28
啟動(dòng)容器
cd && cd mysql/master1 && chmod 755 -R conf && chmod 755 -R data && docker-compose up -d
必須先啟動(dòng)這個(gè)晴叨,用命令
docker-compose logs -f
查看日志凿宾,等待日志出現(xiàn)**** port: 3306 MySQL Community Server (GPL)
啟動(dòng)成功才啟動(dòng)下一個(gè)
主庫 2 19.50.79.27
啟動(dòng)容器
cd && cd mysql/master2 && chmod 755 -R conf && chmod 755 -R data && docker-compose up -d
查看互為主從復(fù)制是否成功
分別進(jìn)入 主庫 1 19.50.79.28
和 主庫 2 19.50.79.27
數(shù)據(jù)庫 容器
docker-compose exec mysql-master bash
兩個(gè)主庫分別登錄數(shù)據(jù)庫 root
用戶
mysql -uroot -p<密碼>
mysql -uroot -pUu4oOGPm5lS6bley0w5PlHh3EUm7DCQguxWF
[執(zhí)行sql] 分別在兩個(gè)數(shù)據(jù)庫上執(zhí)行sql ,查看主從狀態(tài)
SHOW SLAVE STATUS \G;
期待結(jié)果: Slave_IO_Running、Slave_SQL_Running 字段值均為 YES 是成功
注意問題
- MySQL 雙主情況下對(duì)任一個(gè)數(shù)據(jù)庫寫創(chuàng)建等操作都會(huì)同步到另一個(gè)數(shù)據(jù)庫
KeepAlived (MySQL) 部署
部署 keepalived
案例
機(jī)器
19.50.79.28
/19.50.79.27
服務(wù)器 1 (19.50.79.28
)部署:
配置文件在
keepalived-mysql/m1/conf/keepalived-m1.conf
根據(jù)實(shí)際需要修改
keepalived-mysql-m1.png
cd && cd keepalived-mysql/m1 && chmod 755 -R data/ && docker-compose up -d
服務(wù)器 2 (19.50.79.27
)部署:
配置文件在
keepalived-mysql/m2/conf/keepalived-m2.conf
根據(jù)實(shí)際需要修改
keepalived-mysql-m2.png
cd && cd keepalived-mysql/m2 && chmod 755 -R data/ && docker-compose up -d
docker-compose 查看日志輸出
查看 KeepAlived 主備狀態(tài)兼蕊,其中一個(gè)服務(wù)器日志輸出是
MASTER
狀態(tài)初厚,另一個(gè)服務(wù)器日志是BACKUP
狀態(tài)
docker-compose logs -f
注意問題
-
keepalived
配置必須認(rèn)真修改,核對(duì)掩碼位和綁定網(wǎng)卡是否正確 -
keepalived
如果部署成功,一臺(tái)服務(wù)器keepalived
輸出是MASTER
狀態(tài),另一臺(tái)服務(wù)器keepalived
輸出是BACKUP
狀態(tài) - 訪問數(shù)據(jù)庫只需要訪問 VIP + 端口號(hào)