> 部署 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主从集群的方法步骤相关推荐

  1. k8s使用statefulset部署mysql一主多从集群_k8s部署mysql集群南

    部署原理 1.准备环境 服务器2核4G 139.198.38.94 139.198.41.101 139.198.31.125 需要提前准备好NFS挂载,此处用的是静态nfs #所有机器安装 yum ...

  2. k8s使用statefulset部署mysql一主多从集群

    部署原理 1.准备环境 服务器2核4G 139.198.38.94 139.198.41.101 139.198.31.125 需要提前准备好NFS挂载,此处用的是静态nfs #所有机器安装 yum ...

  3. Redis practise(二)使用Docker部署Redis高可用,分布式集群

    思路 鉴于之间学习过的Docker一些基础知识,这次准备部署一个简单的分布式,高可用的redis集群,如下的拓扑 tuopu.png 下面介绍下,对于这张拓扑图而言,需要了解的一些基础概念. Redi ...

  4. 实战:Docker容器虚拟化技术(使用DockerFile构建镜像并搭建 swarm+compose集群)5

    实战:Docker容器虚拟化技术 (使用DockerFile构建镜像并搭建 swarm+compose集群)5 要求: 使用DockerFile构建镜像并搭建 swarm+compose集群 在Swa ...

  5. redis-5.0.4集群部署

    redis-5.0.4 集群搭建 redis-cluster介绍 ​ 1:redis是一个开源的key value存储系统,受到了广大互联网公司的青睐. ​ 2:redis集群采用P2P模式,是完全去 ...

  6. 使用yaml文件创建deployment来部署一个应用程序到k8s集群

    作者: wucong60 原文: https://blog.csdn.net/wucong60/article/details/81586272 系列链接 Kubernetes系列之一:在Ubuntu ...

  7. 二进制部署 单Master Kubernetes-v1.14.1集群

    一.部署Kubernetes集群 1.1 Kubernetes介绍 Kubernetes(K8S)是Google开源的容器集群管理系统,K8S在Docker容器技术的基础之上,大大地提高了容器化部署应 ...

  8. 基于kubeadm快速部署kubernetes K8S V1.17.4集群-无坑完整版

    基于kubeadm快速部署kubernetes K8S V1.17.4集群,并部署Dashboard Web页面,实现可视化查看Kubernetes资源 主机配置规划 服务器名称(hostname) ...

  9. mysql在ibm上安装教程_在ibm服务器上安装配置MySQL集群的方法

    在ibm服务器上安装配置MySQL集群的方法 2014-07-13 16:45来源:中国存储网 导读:本文只是介绍安装和配置,关于一些名词和原理,请参考MySQL手册.一.环境:IBM x3560Vm ...

最新文章

  1. 那些重要却容易被忽视的用户体验(五)
  2. go如何使web工作
  3. 如何搭建modem编译环境
  4. Ionic中自定义公共模块以及在自定义模块中使用ionic内置模块
  5. yml配置文件中有特殊字符解决方案
  6. java split
  7. linux系统用户组管理
  8. Codeforces Round #420 E
  9. 常见的Hadoop十大应用误解
  10. 【英语学习】【Level 07】U03 Amazing wonders L1 My hometown
  11. POJ NOI0101-09 字符菱形
  12. Android:JNI与NDK(二)交叉编译与动态库,静态库
  13. Atitit.自定义jdbc驱动  支持jsql
  14. Office批量打印助手V8.5最新版
  15. 大学计算机ptt制作模板,东南大学计算机ppt模板
  16. RobotFrameWork Web自动化测试之测试环境搭建
  17. vue使用vue-ueditor-wrap集成秀米
  18. win7下java用jdbc驱动来连接sql server的方法 (转载)
  19. 计算机无法重复按键,电脑总是自动重复按键盘上的一个键
  20. shell命令:打印除第一列外所有列

热门文章

  1. 王者荣耀s12赛季服务器维护,王者荣耀S12赛季延期,这篇攻略让我段位狂涨!
  2. wince7 屏幕控制_技术干货:WinCE 7.0下的触摸屏驱动
  3. Python爬虫--51job爬取岗位信息并写入txt文件
  4. C++ 虚函数 纯虚函数 抽象类 代码示例
  5. The netfilter.org project
  6. 英特尔处理器的性能监控事件文件下载
  7. buildroot:Linux平台构建嵌入式Linux系统的框架
  8. web前端基础(13js语法基础)
  9. web前端基础(03html列表知识)
  10. Centos中iptables和firewall防火墙