MySql的主从复制

sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7)

sudo docker run -p 3339:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 主数据库

sudo docker run -p 3340:3306 --name slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 从数据库

执行完 俩个命令 创建的容器默认启动

docker ps 查看当前正在运行的 容器

docker exec -it master bash 进入master容器

cd etc/mysql 切换到 MySQL所在的路径

vi my.cnf 对my.cnf 进行编辑 可能会报错 原因是 没有 容器本身没有安装 vim

安装 vim

apt-get update

apt-get install vim

安装成功后 vim my.cnf

对文件进行编辑

[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能
log-bin=mysql-bin

配置完成后需要重新启动容器 service mysql restart
重启mysql服务时会使得docker容器停止,我们还需要docker start master启动容器。
重启之后 再次进入容器
mysql -uroot -p123456
进入数据库服务

mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

创建用来同步的用户,并且给用户添加俩个权限 用来主从库之间的同步

mysql> show master status; 查看 master的状态

记住 file 下的文件名字 Position 位置

退出 master 容器

docker exec -it slave bash 进入slave所组织容器
cd etc/mysql 切换到 MySQL所在的路径

vi my.cnf 对my.cnf 进行编辑 可能会报错 原因是 没有 容器本身没有安装 vim

安装 vim

apt-get update

apt-get install vim

安装成功后 vim my.cnf

对文件进行编辑

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

配置完成后需要重新启动容器 service mysql restart
重启mysql服务时会使得docker容器停止,我们还需要docker start master启动容器。
重启之后 再次进入容器
mysql -uroot -p123456

mysql> change master to master_host='master容器的ip', master_user='master容器中创建的用于主从同步的用户', master_password='账户的密码', master_port=3306, master_log_file='master下查看的file', master_log_pos= Position文件位置, master_connect_retry=30;

执行完之后
mysql>show slave status \G; 查看主从同步状态
Slave_IO_Running:NO
Slave_SQL_Running:NO
还未开启主从复制状态

mysql> start slave;

再次查看状态
mysql>show slave status \G;

Slave_IO_Running:YES
Slave_SQL_Running:YES

即为开启主从复制 成功

若依然为NO 可尝试 先exit 退出MySQL服务 然后 mysql -uslave -p123456 -h127.17.0.2
先使用master中设置的,用于主从同步的用户
启动mysql服务后 exit
再次 使用默认用户 mysql -uroot -p123456 启动mysql服务

mysql>stop slave;
mysql>start slave;
mysql>show slave status \G; 再次查看状态

俩个全为YES 主从复制即为成功

docker下MySQL的主从复制的更多相关文章

  1. Docker 下 mysql 简单的 主从复制实现

    1. 拉取镜像 docker pull mysql: 2. 运行这个镜像 docker run -d --name maser mysql: 3. 安装一些必要的软件 docker exec -it ...

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

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

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

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

  4. 修改docker下mysql配置

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

  5. Docker下MySQL的安装

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

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

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

  7. centos6下mysql的主从复制的配置

    2015年9月17日 23:00:36 update 想要好好了解mysql复制,还是去看看<高性能MySQL>(第三版)好了,上面说的比较详细. =========== 在本地用virt ...

  8. Linux下mysql的主从复制配置

    1.准备两台数据库环境,或者单台多实例环境,能正常启动和登录. 数据库的安装和多实例配置请参考https://www.cnblogs.com/qiuhom-1874/p/9757061.html. 2 ...

  9. docker 下 mysql 集群的搭建

    下载程序&&创建docker容器 从mysql官网https://dev.mysql.com/downloads/cluster/上下载mysql集群库mysql-cluster-gp ...

随机推荐

  1. mininet(二)简单的路由实验

    mininet(一)实验环境搭建 mininet(二)简单的路由实验 mininet(三)简单的NAT实验 在网上找了 好几个代码都是不能直接复现成功,这里把自己实现成功的代码给大家演示一下. 实验的 ...

  2. go学习第三天、数据类型

    基本数据类型 bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte // alias ...

  3. HDU5973 Game of Geting Stone(威佐夫博弈)

    Two people face two piles of stones and make a game. They take turns to take stones. As game rules, ...

  4. Python必学之编译器用哪个好?你用错了吧!

    学python要知道怎么用好编译器.当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件由于整个Pyth ...

  5. 适用于Java开发人员的SOLID设计原则简介

    看看这篇针对Java开发人员的SOLID设计原则简介.抽丝剥茧,细说架构那些事——[优锐课] 当你刚接触软件工程时,这些原理和设计模式不容易理解或习惯.我们都遇到了问题,很难理解SOLID + DP的 ...

  6. Day 02 作业

    作业 一 什么是编程? 基于编程语言的语法格式将自己脑中里想让计算机做的事,写到文件中. 二 简述计算机五大组成 控制器,运算器,存储器,输入设备,输出设备 三 操作系统有什么用? 操作系统直接与硬件 ...

  7. VMware“该虚拟机似乎正在使用中”

    问题现象: 在用VMware虚拟机的时候,有时会发现打开虚拟机时提示"该虚拟机似乎正在使用中.如果该虚拟机未在使用,请按"获取所有权(T)"按钮获取它的所有权.否则,请按 ...

  8. 解读setTimeout, promise.then, process.nextTick, setImmediate的执行顺序

    最近在看<Node.js调试指南>的时候遇到有意思的几道题,是关于setTimeout, promise.then, process.nextTick, setImmediate的执行顺序 ...

  9. ngxtop(nginx实时监控工具)

    原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/dea1ca3a-7 ...

  10. Vue学习笔记:提升开发效率和体验的常用工具

    Vetur 用途: 语法高亮 标签补全,模板生成 Lint检查 格式化 vs code环境配置文件 文件-->首选项-->搜索veture(找不到需要自行安装)-->在setting ...