首先需要安装docker镜像:

docker pull mysql:5.7

由于需要启动数据库才可以进入数据修改my.cnf文件,可以选择安装vi命令,也可以选择挂在

在此选择是挂载的方法进行安装:

docker run --name mastermysql -d -p : -e MYSQL_ROOT_PASSWORD=1234 -v /usr/master/data:/var/lib/mysql -v /usr/master/conf/my.cnf:/etc/mysql/my.cnf  mysql:5.7
docker run --name slavermysql -d -p : -e MYSQL_ROOT_PASSWORD= -v /usr/slaver/data:/var/lib/mysql -v /usr/slaver/conf/my.cnf:/etc/mysql/my.cnf  mysql

这样就可以创建两个mysql容器,但是需要修改my.cnf,上面创建的是文件文件夹

进入 cd /usr/master

执行 rm -rf my.cnf

再执行 vi my.cnf

加入:

[mysqld]
## 同一局域网内注意要唯一
server-id=
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin

在从数据库中也是如此操作:

在文件中加入:

[mysqld]
## 设置server_id,注意要唯一
server-id=
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin

这样就可以了:

再次启动两个mysql容器:

首先进入主数据:

docker exec -it mastermysql bash

mysql -u root -p

输入密码

执行:
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by ''; show master status; 这里是需要记住相关内容的

还需要给两个实例设置独立的ip

执行:

docker inspect --format='{{.NetworkSettings.IPAddress}}' slavermysql
docker inspect --format='{{.NetworkSettings.IPAddress}}' mastermysql

再进入从数据库:

docker exec -it slavermysql bash

 mysql -u root -p
输入密码 change master to master_host='172.17.0.3',master_user='backup',master_password='',master_log_file='mysql-bin.0000003',master_log_pos=,master_port=; 执行
start slave;
再执行
show slave status\G;

master_host :Master的地址,指的是容器的独立ip,可以通过docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id查询容器的ip

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

master_user:用于数据同步的用户

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

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

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

然后就可以看到:

再在主数据库中创建test数据库:

再进入从数据库中查看:

代表已经安装成功

docker搭建数据库主从复制的更多相关文章

  1. Docker搭建MySQL主从复制

    Docker搭建MySQL主从复制 主从服务器上分别安装Docker 1.1 Docker 要求 CentOS 系统的内核版本高于 3.10 [root@localhost ~]# uname -r ...

  2. MySQL(14)---Docker搭建MySQL主从复制(一主一从)

    Docker搭建MySQL主从复制(一主一从) 上一篇博客写了MYSQL主从复制原理 : MySQL(13)---MYSQL主从复制原理 这篇我们来写 Docker搭建MYSQL主从复制(一主一从) ...

  3. Docker搭建 MySQL 主从复制

    为什么选 Docker 搭建主从复制需要两个以上的MySQL, 使用 Docker 非常方便.如果以前没用过,找个简单的文档看看,熟悉一下命令. 搭建过程 1.下载镜像 docker pull mys ...

  4. docker搭建数据库高可用方案PXC

    前言 本方案主要目的是学习, 该方案不太合适于企业项目 是什么? 白话点, 是个提供了必要环境的虚拟机(类似于java的导入部分包一样和c++的头文件差不多), 所以它比普通的VMWare或者Virt ...

  5. 基于Docker搭建MySQL主从复制

    摘要: 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 本篇博文相对简单,因为是初次使用D ...

  6. 基于 Docker 搭建 MySQL 主从复制

    本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 根据网上教程走还是踩了一些坑,不过所幸最终 ...

  7. 基于Docker的Mysql主从复制搭建

    来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg   为什么基于Docker搭建? 资源有 ...

  8. Mongodb数据库学习系列————(一)Mongodb数据库主从复制的搭建

    Mongodb数据库主从复制的搭建 Writeby:lipeng                                    date:2014-10-22 最近项目上用到了位置查询,在网上 ...

  9. Mysql数据库主从复制搭建

    Mysql数据库主从复制原理: 主库开启bin-log日志,同时生成IO线程.IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行:生成标识号 server i ...

随机推荐

  1. 关于EF中实体和数据表以及查询语句映射的问题

    关于EF中实体和数据表以及查询语句映射的问题? 很多人在使用的时候分不清楚 实体字段应该少于等于(数据库中的表字段或者SQL查询中的临时字段).这样在查询或者添加修改都不会出现问题 如果实体的字段大于 ...

  2. 关于jdk1.5之后的自定拆装箱

    我们都知道jdk在1.5版本之后,增加了一些新特性,我们称之为语法糖,有:1.泛型,2.foreach增强for循环,3.自动拆装箱,4.可变参数,5.枚举,6.静态导入 public class T ...

  3. java网络编程安全问题

    客户端与服务器互相传输时传输的数据的原内容会不会被人获取到? 在客户端与服务器之间有很多通信节点,数据在这些节点上传输前,可以先获取他们的安全证书,至于当心怕被修改可以用SSL加密(个人见解,这方面懂 ...

  4. Tensorflow手写数字识别(交叉熵)练习

    # coding: utf-8import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data #pr ...

  5. function几种自执行的形式

    1.(function(){})();这种是最常用的形式 2.var t = function(){}(); 3.-function(){}(); 这三种形式都能自执行

  6. can通信实验

    源码讲解 1.硬件连接 需要两个开发板 2.初始化函数讲解 针对F103的 3.发送函数讲解 4.接收函数讲解 5.main函数讲解

  7. (转)Linux操作系统下VMware的多网卡桥接转换

    VMware,鼎鼎大名的虚拟机软件,没有人不知道吧?当然,在Linux下使用虚拟机软件,并不一定需要使用VMWare,Xen也是非常不错的选择,有很多评测就认为XEN的表现优于VMware.可惜的是X ...

  8. 形式化验证工具(PAT)羊车门代码学习

    首先介绍一下PAT工具,下图是PAT工具的图标 PAT工具全称是Process Analysis Toolkit,可以做一些简单的验证. 今天我们分析一下例子里面的Monty Hall Problem ...

  9. c++线程调用python

    c++调用python,底层就似乎fork一个子进程启动一个python的解释器,执行python文件,由于python解释器维护了一个内部状态,所以如果c++程序是多线程,每个线程都调用python ...

  10. MSSQL数据库设计心得

    统一库名命名规则. 格式:公司简称_库名 如:Supesoft_Member  会员库 建库时,最好将初始大小设置为你认为可允许的最大容量.避免因为库太小,而出现系统自增加.在系统运行中,自动增加空间 ...