写在前边

搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式

源码见我的Github https://github.com/hellxz/mysql-cluster-docker.git

主从目录结构

.

├── bin

│   ├── add-slave-account-to-master.sh

│   ├── reset-slave.sh

│   ├── slave-replias-master-start.sh

│   └── stop-replicas.sh

├── config

│   ├── master.cnf

│   └── slave.cnf

├── docker-compose.yml

├── .env

├── master-data

├── show-slave-status.sh

└── slave-data

目录/文件说明:

bin/add-slave-account-to-master.sh :Master节点添加备份账户的脚本

config/master.cnf : MySQL Master节点的配置文件

config/slave.cnf : MySQL Slave节点的配置文件

docker-compose.yml : 构建主从节点与挂载数据目录的docker-compose配置文件

master-data : 主节点数据位置,当然生产环境要挂到别的位置

slave-data :从节点数据位置,当然生产环境要挂到别的位置

bin/slave-replias-master-start.sh :从节点添加主节点备份账号信息并开启备份的脚本

bin/stop-replicas.sh :关闭从节点备份的脚本

bin/reset-slave.sh : 重置从节点备份状态,修复由于主从集群重启后无法建立集群的问题

.env : 环境变量文件

bin/show-slave-status.sh: 查看主从连接状态的脚本

搭建过程:

1.修改.env文件

# default environment arguments for docker-compose.yml

# set master data dir

MASTER_DATA=./master-data

# set slave data dir

SLAVE_DATA=./slave-data

# set master & slave root password

MASTER_PASSWD=P@ssw0rd

# set slave root passwor

SLAVE_PASSWD=P@ssw0rd

# set replicas mysql account name

REPL_NAME=replicas

# set replicas mysql password

REPL_PASSWD=replicasPasswd

MASTER_DATA是Master节点的数据目录,需要修改到宿主机对应的位置,SLAVE_DATA亦然。

MASTER_PASSWD是主节点的root密码,bin目录下的脚本会读取这个变量的值从而进行访问数据库

SLAVE_PASSWD是从节点的root密码,脚本也会读

REPL_NAME是主节点要创建的账户名,从节点通过这个账户进行访问

REPL_PASSWD是主节点要创建的REPL_NAME对应的密码

2.启动两个节点,执行docker-compose up -d

检查已经启动

3.进入bin目录,执行脚本

cd bin

./add-slave-account-to-master.sh #读取mysql密码,为主节点添加备份账户

./slave-replias-master-start.sh #从节点使用备份账户连接主节点,开启备份

4.查看集群状态,在bin目录下执行./show-slave-status.sh

到此搭建完成。

故障修复

1.重启MySQL集群后从节点无法正常恢复解决。

执行bin目录下的reset-slave.sh, 之后 连接数据库尝试,问题已经解决。

本文系原创文章,拒绝转载

mysql gtid 集群_Docker搭建MySQL主从集群,基于GTID相关推荐

  1. docker 搭建mysql 连接不上_docker搭建MySQL主从集群

    关于MySQL主从模式,如果我们直接在本机上搭建的话,是没法搭建的,只能借助于虚拟机,但有的时候我们又需要搭建一个主从集群,以便于进行一些功能性的测试.这个时候我们就可以尝试使用docker,借助于d ...

  2. 【Mysql】通过 docker 快速搭建 mysql 环境

    [Mysql]通过 docker 快速搭建 mysql 环境 1.方式一:查找Docker Hub上的mysql镜像 获取镜像 docker pull mysql:5.6 创建目录 mkdir mys ...

  3. 保姆级教学——集群环境搭建及创建集群

    保姆级教学--集群环境搭建及创建集群 新建虚拟机 一些默认,加载镜像开启虚拟机,在安装位置选择自己目录,然后建立分区,首先添加 挂载点,类型标准分区,文件系统ext4 加载分区,期望给2G, 类型标准 ...

  4. mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)

    环境说明: 版本 version 5.6.25-log 主库ip: 10.219.24.25 从库ip:10.219.24.22 os 版本: centos 6.7 已安装热备软件:xtrabacku ...

  5. mysql gtid 搭建主从_MySQL5.7 - 基于GTID复制模式搭建主从复制

    MySQL5.7 - 基于GTID复制模式搭建主从复制 发布时间:2020-04-17 10:09:20 来源:51CTO 阅读:226 作者:insist_way 环境: MySQL5.7.24版本 ...

  6. mysql 异步复制建立过程_mysql生产环境高可用---基于GTID异步复制项目实施

    客户需求: 客户需要上线一个门户网站,初期业务量非常小,数据量10个G,后台需要使用msyql 数据库,需要建设一个数据库环境 项目技术: 操作系统:两台linux系统 红帽6.5 数据库版本:msy ...

  7. mysql server 2012_Windows server 2012 搭建mysql双主

    Windows server 2012 搭建mysql双主 环境介绍 Window server 2012 r2 Mysql 5.5.25 主机IP Server1 172.16.79.112 Ser ...

  8. k8s高可用集群_搭建高可用集群(初始化和部署keepalived)---K8S_Google工作笔记0055

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来部署keepalived,搭建高可用集群. 然后我们这里需要master,155, ma ...

  9. k8s高可用集群_搭建高可用集群(实现方式介绍)---K8S_Google工作笔记0054

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来说搭建高可用集群,为什么要搭建高可用集群. 因为,首先我们说master节点是用来管理其 ...

最新文章

  1. MYSQL的地理信息数据库_国内为什么没有开源地理信息数据库?
  2. mysql导出数据库报错,navicat 导入导出数据库报错的解决
  3. arch Linux 添加引导,ArchLinux 添加开机启动脚本, 亲测
  4. Android实现圆角照片和圆形照片
  5. 0258资源网正版模板emlog资源网/娱乐网模板
  6. 叶修手速900什么概念_什么是数学?数学是探索的过程
  7. FPGA常用FIFO简介
  8. 链表头结点存在的意义
  9. Log4j 与 Logback的ConversionPattern对比
  10. 《与我长跑十年的女友就要嫁人了》…
  11. android exo解码问题,android – exoplayer-自动更改质量不起作用(hls)
  12. Arranging Heaps
  13. Selenium PO模式实现
  14. linux vt码的学习和使用
  15. Oracle中添加删除主键的方法(转)
  16. 英国《物理世界》杂志评选出世界十大物理学家
  17. 解决STC8G1K08程序不能运行的问题和端口配置
  18. SDN控制平面(五)
  19. nordic52840DK-NFC卡
  20. PHP 对接 STEAM 第三方登陆

热门文章

  1. Python类继承对象
  2. win10电脑一开机提示拒绝访问怎么办
  3. RabbitMQ的工作模式Topics  通配符,test测试代
  4. c语言智能指针是什么,C++ 智能指针深入解析
  5. html5a链接_html 超链接(a)详细讲解
  6. 案例-简介小米侧边栏(HTML、CSS)
  7. Vue 获取验证码60s倒计时方法
  8. python 无法调用turtle_新人求助,关于python 调用turtle《python简单turtle教程》
  9. Kotlin系列之枚举类
  10. ubuntu创建切换超级用户