單機搭建docker mysql主從集群

最近在學習分庫分表,使用sharding jdbc ,所以需要在單機部署MySQL主從集群,并且選擇docker作為集群容器。

第一步 拉取鏡像

docker pull mysql:5.7

第二步 創(chuàng)建容器

docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
創(chuàng)建名字是master的容器,作為主庫對外暴露3306端口
docker run --name slave -p 3308:3306 --link master:master -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
創(chuàng)建名字是slave的容器,作為從庫對外暴露3308端口,使用--link參數(shù),保證與主庫master之間的通信

第三步 docker主從配置

修改mysql默認my.cnf文件。
master 的my.cnf 配置修改如下:

# 唯一標志id
server-id=1
#開啟二進制日志
log-bin=mysql-bin

把配置文件拷貝到master鏡像中
docker cp my.cnf master:/etc/mysql/my.cnf

slave 的my.cnf 配置如下:

# 唯一標志id
server-id=2
#開啟二進制日志
log-bin=mysql-bin

把配置文件拷貝到slave鏡像中
docker cp my.cnf slave:/etc/mysql/my.cnf

第四步 創(chuàng)建用于同步的用戶賬號

重啟master
docker restart master
使用sequel pro 連接master,并創(chuàng)建同步賬號slave,密碼為slave

GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by 'slave';
show grants for 'slave'@'%';

重啟slave
docker restart slave
使用sequel pro 連接slave,執(zhí)行以下腳本
這里MASTER_HOST設置為master,因為我們之前建立slave鏡像是使用了 --link master:master

CHANGE MASTER TO 
MASTER_HOST='master',
MASTER_PORT=3306,
MASTER_USER='slave',
MASTER_PASSWORD='slave';
START SLAVE;

show slave status;



可以看到slave已經(jīng)正常啟動了。

第五步 驗證

在master庫中新建test數(shù)據(jù)庫,可以看到slave庫中也同樣會自動創(chuàng)建test數(shù)據(jù)庫,當我們在master的test庫中新建users表,并且插入數(shù)據(jù)后,刷新slave的test庫,可以看到users表,以及相同的表數(shù)據(jù)



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

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

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