docker mysql5.7 主从_使用Docker部署MySQL 5.78.0主从集群的方法步骤
> 部署 MySQL 5.7 集群 master & slave (仅测试用)
镜像版本 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-bin
server-id=1
gtid-mode=ON
enforce-gtid-consistency=ON
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
server-id=2
gtid-mode=ON
enforce-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 mysql5.7 主从_使用Docker部署MySQL 5.78.0主从集群的方法步骤相关推荐
- k8s使用statefulset部署mysql一主多从集群_k8s部署mysql集群南
部署原理 1.准备环境 服务器2核4G 139.198.38.94 139.198.41.101 139.198.31.125 需要提前准备好NFS挂载,此处用的是静态nfs #所有机器安装 yum ...
- k8s使用statefulset部署mysql一主多从集群
部署原理 1.准备环境 服务器2核4G 139.198.38.94 139.198.41.101 139.198.31.125 需要提前准备好NFS挂载,此处用的是静态nfs #所有机器安装 yum ...
- Redis practise(二)使用Docker部署Redis高可用,分布式集群
思路 鉴于之间学习过的Docker一些基础知识,这次准备部署一个简单的分布式,高可用的redis集群,如下的拓扑 tuopu.png 下面介绍下,对于这张拓扑图而言,需要了解的一些基础概念. Redi ...
- 实战:Docker容器虚拟化技术(使用DockerFile构建镜像并搭建 swarm+compose集群)5
实战:Docker容器虚拟化技术 (使用DockerFile构建镜像并搭建 swarm+compose集群)5 要求: 使用DockerFile构建镜像并搭建 swarm+compose集群 在Swa ...
- redis-5.0.4集群部署
redis-5.0.4 集群搭建 redis-cluster介绍 1:redis是一个开源的key value存储系统,受到了广大互联网公司的青睐. 2:redis集群采用P2P模式,是完全去 ...
- 使用yaml文件创建deployment来部署一个应用程序到k8s集群
作者: wucong60 原文: https://blog.csdn.net/wucong60/article/details/81586272 系列链接 Kubernetes系列之一:在Ubuntu ...
- 二进制部署 单Master Kubernetes-v1.14.1集群
一.部署Kubernetes集群 1.1 Kubernetes介绍 Kubernetes(K8S)是Google开源的容器集群管理系统,K8S在Docker容器技术的基础之上,大大地提高了容器化部署应 ...
- 基于kubeadm快速部署kubernetes K8S V1.17.4集群-无坑完整版
基于kubeadm快速部署kubernetes K8S V1.17.4集群,并部署Dashboard Web页面,实现可视化查看Kubernetes资源 主机配置规划 服务器名称(hostname) ...
- mysql在ibm上安装教程_在ibm服务器上安装配置MySQL集群的方法
在ibm服务器上安装配置MySQL集群的方法 2014-07-13 16:45来源:中国存储网 导读:本文只是介绍安装和配置,关于一些名词和原理,请参考MySQL手册.一.环境:IBM x3560Vm ...
最新文章
- 那些重要却容易被忽视的用户体验(五)
- go如何使web工作
- 如何搭建modem编译环境
- Ionic中自定义公共模块以及在自定义模块中使用ionic内置模块
- yml配置文件中有特殊字符解决方案
- java split
- linux系统用户组管理
- Codeforces Round #420 E
- 常见的Hadoop十大应用误解
- 【英语学习】【Level 07】U03 Amazing wonders L1 My hometown
- POJ NOI0101-09 字符菱形
- Android:JNI与NDK(二)交叉编译与动态库,静态库
- Atitit.自定义jdbc驱动 支持jsql
- Office批量打印助手V8.5最新版
- 大学计算机ptt制作模板,东南大学计算机ppt模板
- RobotFrameWork Web自动化测试之测试环境搭建
- vue使用vue-ueditor-wrap集成秀米
- win7下java用jdbc驱动来连接sql server的方法 (转载)
- 计算机无法重复按键,电脑总是自动重复按键盘上的一个键
- shell命令:打印除第一列外所有列
热门文章
- 王者荣耀s12赛季服务器维护,王者荣耀S12赛季延期,这篇攻略让我段位狂涨!
- wince7 屏幕控制_技术干货:WinCE 7.0下的触摸屏驱动
- Python爬虫--51job爬取岗位信息并写入txt文件
- C++ 虚函数 纯虚函数 抽象类 代码示例
- The netfilter.org project
- 英特尔处理器的性能监控事件文件下载
- buildroot:Linux平台构建嵌入式Linux系统的框架
- web前端基础(13js语法基础)
- web前端基础(03html列表知识)
- Centos中iptables和firewall防火墙