配置准备

两台机器

两台机器:A(193.168.10.101)  B(193.168.10.102) 做好ssh免密登录

mysql大版本需要一致,小版本可忽略

并且两台机器已经安装好了docker

yum install docker

下载mysql镜像

docker pull mysql:5.6.31

mysql容器准备

两台机器分别启动mysql容器

[root@bigdata101 ~]# docker run -di -p :3306 --name mysql_101 -v /usr/local/mysql_docker/101/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.31

[root@bigdata102 ~]# docker run -di -p :3306 --name mysql_102 -v /usr/local/mysql_docker/102/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.31

查看容器是否启动

[root@bigdata101 ~]# docker ps

分别进入两个容器,安装vim,并且修改配置文件

[root@bigdata101 ~]# docker exec -it mysql_101 /bin/bash
root@63485bfccaa1:/# apt-get update
root@63485bfccaa1:/# apt-get install vim root@63485bfccaa1:/# vi /etc/mysql/my.cnf #在配置文件最后添加
server-id=
auto_increment_offset=
auto_increment_increment=2
skip-slave-start
log-slave-updates=true
[root@bigdata102 ~]# docker exec -it mysql_102 /bin/bash
root@57ce31a494ad:/# apt-get update
root@57ce31a494ad:/# apt-get install vim root@57ce31a494ad:/# vi /etc/mysql/my.cnf #在配置文件最后添加
server-id=
auto_increment_offset=
auto_increment_increment=2
skip-slave-start
log-slave-updates=true

分别重启mysql容器

[root@bigdata101 ~]# docker restart mysql_101

[root@bigdata102 ~]# docker restart mysql_102

容器配置

A(193.168.10.101) 上的容器配置

给主机B 赋予mysql权限

grant all on *.* to 'slave'@193.168.10.102 identified by '123456';

初始化bin-log日志

reset master;
show master status;

B(193.168.10.102) 上的容器配置

给主机A 赋予mysql权限

grant all on *.* to 'slave'@193.168.10.101 identified by '123456';

初始化bin-log日志

reset master;
show master status;

容器同步配置

在主机A的容器上重新登录mysql后执行:

change master to master_host='193.168.10.102',master_port=33305,master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;

这里的master_host是指主机B的ip地址,master_port是B上的mysql容器启动时赋予的端口,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机B的bin-log日志,master_log_pos是从bin-log日志开始同步的位置。

然后开启同步  执行:

start slave;

查看是否成功:

show slave status\G;

在主机B的容器上重新登录mysql执行:

change master to master_host='193.168.10.101',master_port=33305,master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
start slave;
show slave status\G;

此文大部分配置与 Linux下Mysql数据库互为主从的配置过程 基本一致,只是本文是基于docker的配置,所以略作修改,如有细节问题不清楚,可参考 Linux下Mysql数据库互为主从的配置过程

Docker配置mysql互为主从的更多相关文章

  1. docker配置mysql实现主从同步问题

    主从同步遇到 Got fatal error 1236 from master when reading data from binary log: 'Could not find first log ...

  2. Keepalived与MySQL互为主从自动切换配置

    为解决Mysql数据库单点问题,实现两台MySQL数据库互为主备,双向replication.当一Master出现问题,则将Slave切换为Master继续工作. 环境说明 系统版本:CentOS L ...

  3. mysql互为主从实战设置详解及自动化备份(Centos7.2)

    mysql互为主从实战设置详解(Centos7.2) 第一步:mysql配置  my.cnf配置 服务器1 (10.89.10.90) [mysqld]  server-id=1  log-bin=/ ...

  4. Mysql主从复制的配置(双机互为主从)

    目的: 让两台mysql服务器可以互为主从提供同步服务. 优点: 1. mysql的主从复制的主要优点是同步"备份", 在从机上的数据库就相当于一个(基本实时)备份库. 2. 在主 ...

  5. MySql互为主从配置文件及配置方法

    # Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 6 ...

  6. docker配置mysql主从与django实现读写分离

    一.搭建主从mysql环境 1 下载mysql镜像 docker pull mysql:5.7 2 运行刚下载的mysql镜像文件 # 运行该命令之前可以使用`docker images`是否下载成功 ...

  7. KeepAlived+MySQL互为主从

    http://blog.csdn.net/socho/article/details/51804720 解决Master单点问题,两台mysql互为主备,双向replication.当一master挂 ...

  8. mysql互为主从

    摘自:http://flash520.blog.163.com/blog/static/3441447520101029114016823/ A B 为两台MySQL服务器,均开启二进制日志,数据库版 ...

  9. Centos 6.8 配置mysql数据库主从同步

    Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务,首先确保主从服务器上的Mysql版本相同. 一.安装部署mysql ...

随机推荐

  1. 传智:自己简单实现一个struts2框架的demo

    struts2的结构图: 代码实现: 组织结构: 主要代码: package cn.itcast.config; import org.apache.log4j.Logger; import org. ...

  2. 『转』市售热门可穿戴式“活动追踪器 Tracker”导购指南

    充足的运动对于幸福的生活来说是至关重要的,但很多人总是找不到足够的时间运动,所以远远达不到日常需要的运动标准.这就是为什么今天活动跟踪器成为了热门话题,尤其是对于注重健康的消费者来说.除BodyMed ...

  3. Git 之 git原理简介

    这里只是很简单.超简单的介绍下git,为的是方便记忆: 本地仓库分为三个部分:工作区.暂存区.仓库区,其中暂存区和仓库区属于版本区. 对于文件的操作,需要从工作区----> 暂存区 ----&g ...

  4. 使用c++实现一个FTP客户端(一)

    之前使用c++实现了一个FTP客户端,在这里做一些记录. 一.需要注意的几点 ①FTP是一种文件传输协议,基于TCP,所以客户端与服务器建立的连接是可靠.安全的,并且要经过三次握手的过程. ②FTP传 ...

  5. mysql 多条语句合并查询

    select count(*) from matches where StartTime > 1519315200 and endtime < 1519401600 and matchty ...

  6. PyalgoTrade 打印收盘价(二)

    让我们从一个简单的策略开始,就是在打印收盘价格的过程中: from pyalgotrade import strategy from pyalgotrade.barfeed import yahoof ...

  7. SpringBoot实现网站注册,邮件激活码激活功能

    项目源码:https://gitee.com/smfx1314/springbootemail 上一篇文章已经讲到如何springboot如何实现邮件的发送,趁热打铁,这篇文章实现如下功能. 很多网站 ...

  8. 用ASP.Net(C#)连接Oracle数据库的方法及实例

    今天看了一下asp.net连接oracle数据库的方法,得到了如下代码.这段代码打开了MyTable表,并把操作员的名字列出.字段类型是OracleString.读取的时候用的是字段编号,我不知道怎么 ...

  9. java System.arrayCopy使用说明

    java System.arrayCopy使用说明 java.lang.System.arraycopy() 方法复制指定的源数组的数组,在指定的位置开始,到目标数组的指定位置. 下面是 System ...

  10. 在Linux中安装Oracle(较详细图解)

    原创 http://www.cnblogs.com/nucdy/p/5603998.html 参考视屏:链接: https://pan.baidu.com/s/1kViEZQZ  密码: z7ha ( ...