Docker搭建MySql數(shù)據(jù)庫主從架構(gòu)

相比傳統(tǒng)的架構(gòu)設(shè)計,使用Docker來搭建數(shù)據(jù)庫的主從模式更加簡單。本節(jié)內(nèi)容,我們就Docker搭建MySql主從模式來做一些了解,文中的搭建方法僅僅是一種最簡單的方式,具體的業(yè)務(wù)場景還需要小伙伴們自行加固,本文僅做學(xué)習(xí)參考之用。

一、下載鏡像文件

出于對系統(tǒng)的穩(wěn)定性和減少部署麻煩,本文使用MySql5.7的版本來做演示。

docker pull mysql:5.7.25

二、運行容器實例
1、主庫docker run -p 3306:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.25
2、從庫 docker run -p 3307:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.25

三、容器安裝vim(文本編輯器)

因需要修改mysql中的my.cnf文件,所以安裝vim來修改。當然你也可以使用其他方式來修改/etc/mysql/my.cnf這個配置文件。

1、進入容器實例內(nèi)部控制終端docker exec -it 容器id/bin/bash
2、執(zhí)行指令mv /etc/apt/sources.list /etc/apt/sources.list.bak
3、執(zhí)行指令

echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list

4、執(zhí)行指令 apt-get update
5、執(zhí)行指令 apt-get install vim
6、在主庫中執(zhí)行show master status;,記錄一下File字段的值和Position字段的值。
7、在主庫創(chuàng)建用戶并賦予權(quán)限

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

8、cd到/etc/mysql/目錄下,執(zhí)行 vim my.cnf
9、修改配置文件,添加如下配置

[mysqld]
server-id=1000
log-bin=mysql-bin

10、重啟主庫和容器

service mysql restart
docker start mymysql-master

11、修改從庫配置文件并重啟mysql

server-id=1001
log-bin=mysql-slave-bin
relay_log=edu-mysql-relay-bin

12、進入從庫命令模式,執(zhí)行如下指令

如果不清楚主庫的容器ip,可以使用docker inspect id/名稱來查看。正常情況下容器實例的ip其實是動態(tài)獲取的,所以建議使用自定義網(wǎng)絡(luò)來設(shè)置固定ip;

change master to master_host='172.17.0.4', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 617, master_connect_retry=30;

13、開啟主從同步過程

在從庫的mysql命令行中執(zhí)行。

start slave

14、查看主從同步狀態(tài)

show slave status \G

四、測試主從同步
PS:在主庫中新建數(shù)據(jù)庫,看從庫是否能同步過來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容