1. 拉取镜像

docker pull mysql:5.7.

2. 运行这个镜像

docker run -d --name maser mysql:5.7.

3. 安装一些必要的软件

docker exec -it master /bin/bash

apt-get update
apt-get install vim 安装必要的软件

4. 生成一个带vim编辑器的mysql images

docker commit master mysqlwithvim:

5.创建部分目录

mkdir /mysql
cd mysql
mkdir master/data
mkdir slave/data

创建master和slave 的部分配置文件
vim my.cnf
内容为: [mysqld]
log-bin=mysql-bin
server-id=100 slave的配置文件为
[mysqld]
server-id=200

6. 启动两个container

docker rm -f master

docker run -d --name master -p :3306  -e MYSQL_ROOT_PASSWORD='Test6530' mysqlwithvim:20180822
docker run -d --name slave -e MYSQL_ROOT_PASSWORD='Test6530' mysqlwithvim:20180822

7. 进入 master 容器进行设置

docker exec -it master /bin/bash

#输入
mysql -u root -p
#输入密码 Test6530
#创建同步用户。
CREATE USER 'zhaobsh'@'%' IDENTIFIED BY 'Test6530';
#增加权限
GRANT REPLICATION SLAVE ON *.* TO 'zhaobsh'@'%';
GRANT ALL ON *.* TO 'zhaobsh'@'%';
flush privileges;
#查看数据库的状态
show master status; 结果为:

+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 | 949 | | | |
+------------------+----------+--------------+------------------+-------------------+

查看ip地址

vi /etc/hosts

8. 进入slave容器进行处理。

docker exec -it slave /bin/bash

#输入
mysql -u root -p
#输入密码 Test6530 CHANGE MASTER TO MASTER_HOST='172.17.0.2', MASTER_USER='zhaobsh', MASTER_PASSWORD='Test6530', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=949; #跟上面的查询结果对应.

9. 查看slave 的状态

在mysql 下面执行

start slave;
show slave status\G

10. 报错如图示

这里需要改改 重启一下 master和 slave 貌似 之前的 my.conf 没生效

重启一下 应该就可以了

测试同步

master 创建一个数据库

slave 在前后查看 能够同步

study From

https://blog.csdn.net/boling_cavalry/article/details/79751085

Docker 下 mysql 简单的 主从复制实现的更多相关文章

  1. Linux - centos7 下 MySQL(mariadb) 和 主从复制

    目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...

  2. Windows 下 MySQL 简单定时自动备份、删除过期备份

    Windows 下 MySQL 简单定时自动备份.删除过期备份 MySQL Workbench 客户端虽然好用,但并不提供自动备份功能.手工备份,确实繁琐. 新建一个 数据库备份文件存放目录,本例为D ...

  3. docker下MySQL的主从复制

    MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name mas ...

  4. docker 下mysql 和postgresql 数据库的搭建以及数据文件的迁移和备份

    service docker start - docker 启动 service docker stop - docker 关闭 1.docker 镜像创建—使用的默认镜像有数据卷 docker pu ...

  5. Docker下mysql容器开启binlog日志(保留7天)

    现有需求开启用Docker容器启动的mysql数据库的binlog,以作为 日志记录 和 数据恢复,我们了解了MySQL的binlog日志的开启方式以及binlog日志的一些原理和常用操作,我们知道, ...

  6. 修改docker下mysql配置

    1.在/home/smile/docker/mysql/config/目录下增加一个文件 my.cnf # Copyright (c) , Oracle and/or its affiliates. ...

  7. Docker下MySQL的安装

    1 概述 本文讲述了如何利用Docker去安装MySQL,以及MySQL自定义配置文件的相关设置. 2 安装Docker 首先安装Docker并开启服务: systemctl start docker ...

  8. docker下MySQL镜像的使用方法

    预习: 使用到的docker命令: docker images   显示本地有的镜像 docker pull +镜像名称   从docker hub上面拉取镜像 docker run    --nam ...

  9. docker 搭建 MYSQL并且完成主从复制

    mysql主从复制逻辑: 1.从库执行start slave 开启主从复制. 2.从库请求连接到主库,并且指定binlog文件以及位置后发出请求. 3.主库收到从库请求后,将信息返回给从库,除了信息日 ...

随机推荐

  1. 如何将tensor的内容输出到文本文件

    local part2 = self.convModel:forward({linputs, rinputs}) ) local file = io.open('/home/xbwang/Deskto ...

  2. UPF Usage

    在 multi-voltage design 中,当涉及到多个power supply 时,需要 upf 文件来描述power细节,现将 upf 中的基本概念和使用方法记录如下: upf 中的基本概念 ...

  3. css盒子模型(box-sizing)

    盒子模型 关于CSS重要的一个概念就是CSS盒子模型.它控制着页面这些元素的高度和宽度.盒子模型多少会让人产生一些困惑,尤其当涉及到高度和宽度计算的时候.真正盒子的宽度(在页面呈现出来的宽度)和高度, ...

  4. day11有参装饰器,无参装饰器

    今日内容 1.有参装饰器 2.无参装饰器 什么是装饰器? 用来为被装饰对象添加新功能的工具. 注:装饰器可以是任意可调用对象,被装饰对象也可以是任意可调用对象. 为何要用装饰器? 开放封闭原则:对修改 ...

  5. Feeling_2018_5_22

    “我打你,你会走吗?”    “不会!!” “我骂你,你会走吗?”    “不会!!” “那我不爱你了,你会走吗?”       “会.”

  6. # 2017-2018-2 20155231《网络对抗技术》实验九: Web安全基础实践

    2017-2018-2 20155231<网络对抗技术>实验九: Web安全基础实践 实验要求: 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验内容: ( ...

  7. 20155330 《网络对抗》 Exp9 web安全基础实践

    20155330 <网络对抗> Exp9 web安全基础实践 实验问题回答 SQL注入攻击原理,如何防御 原理:SQL注入攻击值得是通过构建特殊的输入作为参数传入web应用程序,而这些输入 ...

  8. Git配置用户名与邮箱

    1.用户名和邮箱地址的作用 用户名和邮箱地址是本地git客户端的一个变量 每次commit都会用用户名和邮箱纪录. github的contributions统计就是按邮箱来统计的. 2.查看用户名和邮 ...

  9. Node.js 下载路径/微软产品下载路径

    https://nodejs.org/en/ https://www.microsoft.com/en-us/download //微软官方下载地址,可以下载VS2015  SQL 等 微软产品

  10. Spring集成Swagger,Java自动生成Api文档

    博主很懒... Swagger官网:http://swagger.io GitHub地址:https://github.com/swagger-api 官方注解文档:http://docs.swagg ...