Docker mysql主从配置

一:Mysql基于Docker的主从复制搭建

1:安装docker,安装步骤可见我之前的文章:Docker-常用基建的安装与部署

docker ps 命令查询当前的容器状态,这就是我们最后要达到的效果。

2:首先拉取mysql官方镜像

bash docker pull mysql:5.7

演示环境是在同一台服务器上部署。因为docker创建容器时默认采用bridge网络,会自行分配ip,不允许指定,重启容器会导致ip变更。

所以我们需要创建自定义的bridge网络,这样创建容器的时候才能指定ip。

bash docker network create --subnet=172.18.0.0/16 mynetwork

3:创建三个mysql(一主两从)容器:

docker run -p 3306:3306 --name mysql_master --net mynetwork --ip 172.18.0.36 -e TZ=Asia/Shanghai -v /home/data/docker/mysql/mysql1/logs:/logs -v /home/data/docker/mysql/mysql1/data:/var/lib/mysql -v /home/data/docker/mysql/mysql1/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=Abcd12345 -d --restart=always mysql:5.7

docker run -p 3307:3306 --name mysql_slave1 --net mynetwork --ip 172.18.0.37 -e TZ=Asia/Shanghai -v /home/data/docker/mysql/mysql2/logs:/logs -v /home/data/docker/mysql/mysql2/data:/var/lib/mysql -v /home/data/docker/mysql/mysql2/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=Abcd12345 -d --restart=always mysql:5.7

docker run -p 3308:3306 --name mysql_slave2 --net mynetwork --ip 172.18.0.38 -e TZ=Asia/Shanghai -v /home/data/docker/mysql/mysql3/logs:/logs -v /home/data/docker/mysql/mysql3/data:/var/lib/mysql -v /home/data/docker/mysql/mysql3/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=Abcd12345 -d --restart=always mysql:5.7

上面的docker run命令中的参数都有其独特的含义,比如 -p 3307:3306 表示当前环境主键的端口(3307):docker容器内的端口(3306)

-v /home/data/docker/mysql/mysql1/conf:/etc/mysql 这个配置的是mysql的配置文件路径,

对于mysql_master 需要在当前系统/home/data/docker/mysql/mysql1/conf目录下创建 my.cnf文件,内容如下:

[mysqld]

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

datadir = /var/lib/mysql

#log-error = /var/log/mysql/error.log

# By default we only accept connections from localhost

#bind-address = 127.0.0.1

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

log-bin=/var/lib/mysql/mysql-bin

server-id=36

## 主从复制的格式(mixed,statement,row,默认格式是statement)

binlog_format=mixed

## 二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。

expire_logs_days=7

max_allowed_packet=20M

剩余的两个从库配置,/home/data/docker/mysql/mysql2/conf目录下创建 my.cnf文件

[mysqld]

server-id=37

log-bin=/var/lib/mysql/mysql-slave1-bin

/home/data/docker/mysql/mysql3/conf目录下创建 my.cnf文件

[mysqld]

server-id=38

log-bin=/var/lib/mysql/mysql-slave2-bin

配置修改完成后,重启容器:

docker restart mysql_master

docker restart mysql_slave1

docker restart mysql_slave2

二:主从配置

1:进入主库:docker exec -it mysql_master /bin/bash

bash mysql -uroot -p

mysql SHOW MASTER STATUS;

File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 | 154|

2:同步mysql_slave1 和 mysql_slave2

# 进入mysql_salve1

bash docker exec -it mysql_slave1 /bin/bash

# 执行同步

mysql change master to master_host='172.18.0.36', master_user='root',master_password='Abcd12345',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=154,master_connect_retry=30;

mysql start slave;

# 进入mysql_salve2

bash docker exec -it mysql_slave2 /bin/bash

# 执行同步

mysql change master to master_host='172.18.0.36', master_user='root',master_password='Abcd12345',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=154,master_connect_retry=30;

mysql start slave;

master_port:Master的端口号,指的是容器的端口号

master_user:用于数据同步的用户

master_password:用于同步的用户的密码

master_log_file:指定 Slave 从哪个日志文件开始复制数据,即主库中提到的 File 字段的值

master_log_pos:从哪个 Position 开始读,即主库中提到的 Position 字段的值

master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒

最后,可以自己验证下同步的效果了。

Docker mysql主从配置 相关文章

MongoDB主从复制和副本集

MongoDB有主从复制和副本集两种主从复制模式,主从复制最大的问题就是无法自动故障转移,MongoDB副本集解决了主从模式无法自动故障转义的特点,因此是复制的首

Visual Studio Code 配合php-debug在Docker环境调试

1、本地安装环境为docker作为PHP Web环境 2、php72 容器已经安装好了xdebug扩展 3、php.ini 配置文件(PHP7.2映射配置) [XDebug]xdebug.remote_enable = 1xdebug.remote_handler = "dbgp"; Set to host.docker.internal on Mac and Windows, otherwise, set

SSM框架整合

一、使用环境 jdk 11mysql 8maven 3.6.3 二、pom.xml 依赖导入 dependencies !--junit单元测试-- dependency groupIdjunit/groupId artifactIdjunit/artifactId version4.12/version /dependency !--数据库驱动-- dependency groupIdmysql/groupId artifactI

spring 项目 本地正常,打入docker容器就抛出bean找不到的错误

错误信息如下: Error creating bean with name 'messageServiceImpl': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [com.qianxiao.blogwebscoket.service.impl.MessageServiceImpl

MySQL-SQL优化

前言 在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。 SQL优化一般步骤 1、通过慢查日志等定位那些执行

MySQL索引

一、介绍 1、什么是索引 ①索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引时一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 ②通俗的讲,

Docker 安装nginx和tomcat

前一篇文章已经介绍过如何安装和使用 Docker。今天来实际操作下,安装tomcat和nginx。 拉取第一個docker鏡像 docker pull hello-world 拉取一个镜像 可以配置国内的一些镜像源,这样速度快多了。 https://hub-mirror.c.163.com https://docker.mirrors.ustc.

docker部署 springboot 多模块项目+vue

之前学习了docker,今天就来试试将这个项目打包成docker镜像并通过运行一个镜像来运行项目。这里使用的项目是el-admin。是一个开源的springboot后端管理框架(前端vue),有兴趣的小伙伴可以去看看。 网址:https://el-admin.vip 关于docker的入门可以查看我

mysql学习笔记:九.排序和分页(order by、limit)

排序和分页(order by、limit) 排序查询(order by) 排序语法: select 字段名 from 表名 order by 字段1 [asc|desc],字段2 [asc|desc]; 需要排序的字段跟在 order by 之后; asc|desc表示排序的规则,asc:升序,desc:降序,默认为asc; 支持多个字段进

Mysql笔记(二)

SQL优化 原因:性能低、执行时间太长了、等待时间太长、SQL语句欠佳(连接查询)、索引失效、服务器参数设置不合理(缓冲) 查询执行流程 下面再向前走一些,容我根据自己的认识说一下查询执行的流程是怎样的: 1.连接 1.1客户端发起一条Query请求,监听客户

docker mysql.sock,Docker mysql主从配置相关推荐

  1. mysql 5.7.20主从配置_mysql-5.7.20源码安装 + 多实例 + 主从复制

    版本:MySQL-5.7.20 1.更换yum源 wget -O /etc/yum.repos.d/eprl.repo http://mirrors.aliyun.com/repo/epel-6.re ...

  2. MySQL编译安装及主从配置

    说明:本实验配置以Cenos6.6和MySQL5.6.35为例 一.编译安装MySQL 1.避免在安装过程中出现问题,先安装系统依赖包 yum install apr autoconf automak ...

  3. mysql 5.5数据库主从配置步骤详解

    上次给大家介绍了mysql 5.1主从搭建配置教程,这次我们来实现mysql 5.5的主从复制,其实大体上配置是差不多的,只有点细微的差别. 系统:centos 5.x 需要的软件包:mysql-5. ...

  4. Mac单机多实例Mysql(8.0.16)主从配置

    一 .MySQL多实例部署方式 1)使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便: 2)通过官方自带的mysqld_multi使用单独的配置文件 ...

  5. MYSQL在centos上主从配置

    主从配置理论传送门:http://blog.csdn.net/hguisu/article/details/7325124 具体配置方案: 一:MYSQL主从配置   1.1 部署环境 主(maste ...

  6. Docker(7)Redis主从配置和集群配置

    文章目录 Redis 集群配置 新建6个redis容器 构建主从关系 Redis 集群配置 三主三从集群搭建 新建6个redis容器 单台创建命令 docker run -d --name redis ...

  7. mysql读写分离,主从配置

    2019独角兽企业重金招聘Python工程师标准>>> 一个完整的mysql读写分离环境包括以下几个部分: 应用程序client database proxy database集群 ...

  8. mysql主从复制过滤_mysql主从配置及复制过滤

    前提:为了方便搭建,我直接使用了lnmp搭建环境,mysql版本使用5.6版本,数据库为test(在主服务器上创建数据库后备份拉到从服务器) 部署LNMP ( 安装详情请见:https://lnmp. ...

  9. mysql 5.7.20主从配置_mysql5.7.20免安装版配置方法图文教程

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. 五、curator recipes之选举主节点Leader Latch
  2. 大竹中学2021高考成绩查询,四川大竹中学2021录取分数线
  3. PHP从远程mysql下载文件_PHP下载远程文件到指定目录
  4. mysql 暴力破解 root账号密码
  5. MTK 驱动开发 (1)---GPIO架构
  6. nginx html 不缓存,nginx如何实现js和css不缓存
  7. Web.config中注册用户控件和自定义控件
  8. linux[CentOS 6.5] 用户不在 sudoers 文件中,此事将被报告解决方案
  9. leetcode 326 [easy]--- Power of Three
  10. Intellij IDEA 神级插件
  11. 物联网技术应用在智慧医疗的应用案例
  12. 建造者模式(Builder)---创建型
  13. 获取图片地址并下载图片
  14. (1-10总结)微信点餐项目-第一阶段总结
  15. QLCDNumber制作的超简单计时器,按下空格键暂停。
  16. turtle海龟画板
  17. 限流——漏桶算法和令牌桶算法的区别
  18. 45-Jenkins-Sidebar Link插件实现添加侧边栏
  19. WVP-PRO+ZLMediaKit搭建GB28181视频平台(linux详细教学)
  20. RGBA、ARGB和HEX颜色格式转换javascript实现

热门文章

  1. 百度地图iOS API
  2. 1115. 交替打印FooBar
  3. 渗透测试初学者_渗透测试许可证:面向初学者的道德黑客课程
  4. vim ctrlp_使用Ctrlp和Ctag使Vim更智能
  5. ios pusher使用_使用.NET和Pusher构建实时评论功能
  6. android引入开源库_为好目录引入开源:通过代码帮助公益组织
  7. 您的第一个简单的机器学习项目
  8. 栈和递归的关系 144:Binary Tree Preorder Traversal
  9. Android 最简单的MVP案例;
  10. 句子相似度--余弦相似度算法的实现