如何使用Docker部署MySQL 5.7&8.0主从集群
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍了如何使用Docker部署MySQL 5.7&8.0主从集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。镜像版本 5
千家信息网最后更新 2025年12月01日如何使用Docker部署MySQL 5.7&8.0主从集群
这篇文章主要介绍了如何使用Docker部署MySQL 5.7&8.0主从集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
镜像版本 5.7
1、创建 overlay 网络
docker network create --driver overlay common-network --attachable
2、编辑两个配置文件 master.cnf 与 slave.cnf
!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/[mysqld]log-bin=mysql-binserver-id=1gtid-mode=ONenforce-gtid-consistency=ON
!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/[mysqld]server-id=2gtid-mode=ONenforce-gtid-consistency=ON
3、启动 2 个 MYSQL:mysql-master 、mysql-slave
docker run -d \--name mysql-master \--network common-network \-e MYSQL_ROOT_PASSWORD=Passw0rd \-v `pwd`/master.cnf:/etc/mysql/my.cnf \-p 3306:3306 \-d mysql:5.7
docker run -d \--name mysql-slave \--network common-network \-e MYSQL_ROOT_PASSWORD=Passw0rd \-v `pwd`/slave.cnf:/etc/mysql/my.cnf \-p 3307:3306 \-d mysql:5.7
4、添加从库用于复制的用户
docker run -it --rm --network common-network mysql mysql -hmysql-master -uroot -pPassw0rd \-e "CREATE USER 'repl'@'%' IDENTIFIED BY 'password' REQUIRE SSL; " \-e "GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';"
5、连接 master & slave
docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd \-e "CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1, MASTER_SSL=1;" \-e "START SLAVE;"
6、验证 slave 状态
docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd -e "show slave status\G"
如下状态为正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
> 部署 MySQL 8.0 集群 master & slave(仅测试用)
镜像版本 mysql:8.0
1、创建 overlay 网络
docker network create --driver overlay common-network --attachable
2、启动 2 个 MYSQL:mysql-master 、mysql-slave
docker run -d \--name mysql-master \--network common-network \-e MYSQL_ROOT_PASSWORD=Passw0rd \-p 3306:3306 \-d mysql --default-authentication-plugin=mysql_native_password
docker run -d \--name mysql-slave \--network common-network \-e MYSQL_ROOT_PASSWORD=Passw0rd \-p 3307:3306 \-d mysql --default-authentication-plugin=mysql_native_password
3、配置 master & slave
docker run -it --rm --network common-network mysql mysql -hmysql-master -uroot -pPassw0rd \-e "SET PERSIST server_id=1;" \-e "SET PERSIST_ONLY gtid_mode=ON;" \-e "SET PERSIST_ONLY enforce_gtid_consistency=true; " \-e "CREATE USER 'repl'@'%' IDENTIFIED BY 'password' REQUIRE SSL; " \-e "GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';"
docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd \-e "SET PERSIST server_id=2;" \-e "SET PERSIST_ONLY gtid_mode=ON;" \-e "SET PERSIST_ONLY enforce_gtid_consistency=true; "
4、重启 master & slave
docker restart mysql-master mysql-slave
5、连接 master & slave
docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd \-e "CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1, MASTER_SSL=1;" \-e "START SLAVE;"
6、验证 slave 状态
docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd -e "show slave status\G"
如下状态为正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
> 验证数据同步
在 master 创建数据库 anoyi
docker run -it --rm --network common-network mysql mysql -hmysql-master -uroot -pPassw0rd \ -e "create database anoyi default character set utf8mb4 collate utf8mb4_general_ci;"
在 slave 查看数据库列表
docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd \ -e "show databases;"mysql: [Warning] Using a password on the command line interface can be insecure.+--------------------+| Database |+--------------------+| anoyi || information_schema || mysql || performance_schema || sys |+--------------------+
感谢你能够认真阅读完这篇文章,希望小编分享的"如何使用Docker部署MySQL 5.7&8.0主从集群"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
状态
篇文章
集群
数据
验证
主从
数据库
版本
网络
镜像
配置
两个
价值
兴趣
同时
文件
更多
朋友
用户
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小葡萄网络安全技能大赛
网络技术的原理及应用的看法
数据库 没有orcl选项
网络技术公司社会实践
如何判定服务器性能
实时数据库的特点
数据库考试下什么软件
常熟电子网络技术费用
签名档设计软件开发
数据库创建员工信息窗体
房屋销售管理系统数据库c语言
高端服务器搬运哪家好
pcs7下载服务器出错停用
mysql数据库下载
服务器加密专线是什么意思
学校的服务器能更换主机吗
江干区 软件开发公司
教育软件开发方向的课程
vpn 连接数据库
你对计算机网络技术了解多少
2018年工控网络安全事件
数据库系统双层嵌套查询示例
数据库中的表格工具在哪里
太原市公安局网络安全宣传周
数据库登录密码可以查看吗
网络安全答案及解析
阴阳师电脑端老是无法连接服务器
网络安全你我同行作文800字
php数据库是什么
csgo选择服务器的界面不见了