如何使用Docker部署MySQL 5.7&8.0主从集群
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章主要介绍了如何使用Docker部署MySQL 5.7&8.0主从集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。镜像版本 5
千家信息网最后更新 2025年02月05日如何使用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安全错误
数据库的锁怎样保障安全
智慧加油站软件开发
开展网络安全宣传人行工作计划
广州网络安全检测
西安网络安全高校巡讲英语
云服务器没有配置安全组
密码技术是网络安全
人民银行西安分行网络安全周
文书档案数据库录入工作
会计信息系统技术架构的数据库
学计算机会软件开发吗
轻量云服务器里面可以玩端游吗
软件开发小组年终汇报
数据库日志记录问题模拟
怎么引用其他文件的数据库
擎天退税 数据库无效
数据库使用中的知识产权问题
如何搭建大型服务器机房
互联网科技创新活动方案
数据库可以修改数据内容吗
徐州市小学生网络安全竞赛
数据库原理链接例题
acctcl数据库可以
js数据库分页显示
上海进口网络技术厂家供应
胜辉缘达软件开发有限公司
无线网络安全监控
网络安全信息概念
nba新浪数据库总得分
山东惠普服务器续保调试
护苗 网络安全课一 二