主主同步配置和主从配置很相似,仅需稍做修改就可以了,对主从配置有疑问可以查看 上一篇文章

进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下:

--mysql
   --mone
      --data 
      --conf
         --my.cnf    
   --mtwo
      --data 
      --conf
         --my.cnf 

1、主主配置文件

Mone: my.cnf

[mysqld]
server_id = 1
log-bin= mysql-bin binlog-do-db=blogging
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema read-only=0
relay_log=mysql-relay-bin
log-slave-updates=on
auto-increment-offset=1
auto-increment-increment=2 !includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Mtwo: my.cnf

[mysqld]
server_id = 2
log-bin= mysql-bin binlog-do-db=blogging
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema read-only=0
relay_log=mysql-relay-bin
log-slave-updates=on
auto-increment-offset=2
auto-increment-increment=2 !includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

说明:
log-bin :需要启用二进制日志
server_id : 用于标识不同的数据库服务器,而且唯一

binlog-do-db : 需要记录到二进制日志的数据库
binlog-ignore-db : 忽略记录二进制日志的数据库
auto-increment-offset :该服务器自增列的初始值
auto-increment-increment :该服务器自增列增量

replicate-do-db :指定复制的数据库
replicate-ignore-db :不复制的数据库
relay_log :从库的中继日志,主库日志写到中继日志,中继日志再重做到从库
log-slave-updates :该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要

如果为多主的话注意设置 auto-increment-offset 和 auto-increment-increment
如上面为双主的设置:
服务器 152 自增列显示为:1,3,5,7,……(offset=1,increment=2)
服务器 153 自增列显示为:2,4,6,8,……(offset=2,increment=2)

2、启动创建主从容器

//获取基础镜像
docker pull mysql
 
//创建并启动主从容器;
//mone
docker run --name monemysql -d -p 3317:3306 -e MYSQL_ROOT_PASSWORD=anech -v d:/docker/mysql/mone/data:/var/lib/mysql -v d:/docker/mysql/mone/conf/my.cnf:/etc/mysql/my.cnf  mysql
 
//mtwo
docker run --name mtwomysql -d -p 3318:3306 -e MYSQL_ROOT_PASSWORD=anech -v d:/docker/mysql/mtwo/data:/var/lib/mysql -v d:/docker/mysql/mtwo/conf/my.cnf:/etc/mysql/my.cnf  mysql

  这里为了方便查看数据效果,我对外暴露了两个主主的端口。

3、Mone和Mtwo设置

//进入mone容器
docker exec -it monemysql bash
 
//启动mysql命令,刚在创建窗口时我们把密码设置为:anech
mysql -u root -p
 
//创建一个用户来同步数据
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';
//这里表示创建一个slaver同步账号backup,允许访问的IP地址为%,%表示通配符
//例如:192.168.0.%表示192.168.0.0-192.168.0.255的mtwo都可以用backup用户登陆到mone上
 
//查看状态,记住File、Position的值,在mtwo中将用到
show master status;

  

//进入mtwo容器
docker exec -it mtwomysql bash
 
//启动mysql命令,刚在创建窗口时我们把密码设置为:anech
mysql -u root -p
 
//设置主库链接
change master to master_host='172.17.0.2',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3306;

//创建一个用户来同步数据
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';
//这里表示创建一个slaver同步账号backup,允许访问的IP地址为%,%表示通配符
//例如:192.168.0.%表示192.168.0.0-192.168.0.255的mone都可以用backup用户登陆到mtwo上  
//启动同步
start master ;
 
//查看状态
show master status;

设置完后,再次进入Mone容器

//进入mone容器
docker exec -it monemysql bash
 
//启动mysql命令,刚在创建窗口时我们把密码设置为:anech
mysql -u root -p
 
//设置主库链接
change master to master_host='172.17.0.3',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3306;

说明:

master_host:主库地址

master_user:主库创建的同步账号

master_password:主库创建的同步密码

master_log_file:主库产生的日志

master_log_pos:主库日志记录偏移量

master_port:主库使用的端口,默认为3306

设置完后重启Mone容器的mysql服务,然后测试查看效果吧!

文章出处:http://www.cnblogs.com/anech/p/6780949.html

Docker Mysql主主同步配置搭建Demo的更多相关文章

  1. Docker Mysql主从同步配置搭建Demo

    进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下: --mysql --master --data --conf --my.cnf --slaver --da ...

  2. Docker Mysql数据库主从同步配置方法

    一.背景 最近在做内部平台架构上的部署调整,顺便玩了一下数据库的主从同步,特此记录一下操作- 二.具体操作 1.先建立数据存放目录(-/test/mysql_test/) --mysql --mast ...

  3. Docker Mysql主从同步配置搭建

    Docker Mysql主从同步配置搭建 建立目录 在虚拟机中建立目录,例如路径/home/mysql/master/data,目录结构如下: Linux中 新建文件夹命令:mkdir 文件夹名 返回 ...

  4. Linux下MySQL数据库主从同步配置

    说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备 ...

  5. MySql数据主从同步配置

    由于需要配置MySQL的主从同步配置,现将配置过程记录下,已被以后不时之需 MySql数据主从同步   1.1. 同步介绍 Mysql的 主从同步 是一个异步的复制过程,从一个 Master复制到另一 ...

  6. MYSQL主从库同步配置过程

    MYSQL主从库同步配置过程 为了实现网站数据库的异地备份,采用了MySQL数据库主从同步配置,需要两台服务器分别作为主从库,当主库发生增删改等操作,会实时反映到从库,我的个人服务器配置如下: 主库为 ...

  7. MySQL数据库的同步配置+MySql读写分离

    使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3. ...

  8. Linux Centos下MySQL主从Replication同步配置(一主一从)

    MySQL 主从复制概念MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据 ...

  9. windows下 MySQL数据库双向同步 配置步骤

          最近在项目中遇到了要实现服务器上MySql数据双向同步,在网上找了很多资料,但是大部分都是在liux系统下配置的, 而且都是互相转载,没有一个详细的步骤,于是决定写一个windows系统下 ...

随机推荐

  1. Spring Data 增删改查事务的使用(七)

    @Modifying 注解使用 @Modifying 结合 @Query注解进行更新操作 咱们单单的一个查询注解是没有办法完成事务的操作的 我们还要结合一点就是@Transaction 在spring ...

  2. 【转】Spring Boot 日志配置(超详细)

    更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. [toc] 简书不支持目录,截图一张. image.png 默认日志 Logback: 默认情况 ...

  3. Apache 2.4 配置多个虚拟主机的问题

    以前一直用Apache2.2的版本,最近升级到了2.4的版本,尝尝新版本嘛. 不过遇到了几个问题,一个就是配置了多个virtualhost,虽然没有报错,不过除了第一可以正常访问外,其他的都存在403 ...

  4. jquery的常用知识点

    一.用jquery寻找元素 1.选择器 基本选择器: $("*") $("#id") 用id匹配 $(".class") 用class名匹配 ...

  5. Spring Boot 编写入门程序

    1. SpringBoot 入门 快速创建独立运行的Spring项目以及与主流框架集成; 使用嵌入式的Servlet容器,应用无需打成WAR包; starters自动依赖与版本控制; 大量的自动配置, ...

  6. Azkaban简介及使用

    一.Azkaban概述 Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题. 我们有需要按顺序运行的工作,从ETL工作到数据分析产品. 特点: 1)给用 ...

  7. LeetCode—Longest Consecutive Sequence

    题目描述: Given an unsorted array of integers, find the length of the longest consecutive elements seque ...

  8. Python面向对象高级

    一  反射 反射也可以说是python的自省机制 反射就是通过字符串的形式,导入模块,然后以字符串的形式去查找指定函数并执行.利用字符串的形式去模块(对象)中操作(查找/获取/添加/删除)属性,是一种 ...

  9. 002-shell变量定义、使用、字符串、数组、注释

    一.变量定义 定义变量时,变量名不加美元符号($) name="lhx" 注意,变量名和等号之间不能有空格.同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线, ...

  10. 001-mac使用桌面、Dock、键盘、程序安装

    一.桌面 Finder:dock第一个正方形蓝白笑脸,类似于Windows的资源管理器,是图形化界面基础,默认启动 菜单:最上侧一行左侧,当前程序的菜单 dock:应用程序快捷图标,启动的程序下面有个 ...