一、背景

可先查看第一篇Docker Mysql数据库主从同步配置方法介绍

二、具体操作

1、创建目录(~/test/mysql_test1):

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

2、主主配置文件
Mone: my.cnf

[mysqld]
server_id = 1
log-bin= mysql-bin 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 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/

3、创建容器

//创建并启动主从容器;
//mone
docker run --name monemysql -d -p 3317:3306 -e MYSQL_ROOT_PASSWORD=root -v ~/test/mysql_test1/mone/data:/var/lib/mysql -v ~/test/mysql_test1/mone/conf/my.cnf:/etc/mysql/my.cnf mysql:5.7 //mtwo
docker run --name mtwomysql -d -p 3318:3306 -e MYSQL_ROOT_PASSWORD=root -v ~/test/mysql_test1/mtwo/data:/var/lib/mysql -v ~/test/mysql_test1/mtwo/conf/my.cnf:/etc/mysql/my.cnf mysql:5.7

4、容器设置详细

mone容器设置:

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

小技巧:

查看容器IP:

docker inspect monemysql | grep IPA

mtwo容器设置:

//进入mtwo容器
docker exec -it mtwomysql mysql -u root -p //启动mysql命令,刚在创建窗口时我们把密码设置为:root //设置主库链接,master_host即为容器IP,master_log_file和master_log_pos即为在mone容器中,通过show master status查出来的值;
change master to master_host='172.17.0.11',master_user='slave',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=154,master_port=3306; //创建一个用户来同步数据
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456'; //启动同步
start slave ; //查看状态
show master status;

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

//进入mone容器
//启动mysql命令,刚在创建窗口时我们把密码设置为:root
docker exec -it monemysql mysql -u root -p //设置mtwo主库链接,参数详细说明同上
change master to master_host='172.17.0.12',master_user='slave',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=443,master_port=3306; //启动同步
start slave ;

配置完成之后,可以验证双主配置是否正确

在mone容器中,查看:

show slave status\G;

在mtwo容器中,查看:

show slave status\G;

当红框两个Running状态都为Yes时,说明双主配置成功了~

三、验证

1、在mone库中操作:

create database mone_demo;
use mone_demo;
create table userinfo(username varchar(50),age int);
insert into userinfo values('Tom',18);
select * from userinfo;

2、在mone库操作完后,在mtwo库中查看验证

首先查看数据库,发现数据库已经同步过来了,继续验证:

发现表的数据也同步过来了。

3、在mtwo库中,在此库,此表中,新增记录

insert into userinfo values('mtwo',20);

在mone库中查看,发现在mtwo库中新增的记录,确实也同步到mone库中来了哦~

4、继续走一波验证,在mtwo库中,新增一个数据库,看是否同步到mone库中

create database mtwo_demo;

在mone库中,查看验证,查看数据库:

发现在mtwo库新增的数据库,已经同步到了mone容器中来了

到此为止,Mysql的主从同步和主主同步就介绍结束了,喜欢的,请点赞关注公众号哦~

Docker Mysql数据库双主同步配置方法的更多相关文章

  1. Docker Mongo数据库主主同步配置方法

    一.背景 不多说,请看第一篇<Docker Mongo数据库主从同步配置方法> 二.具体操作方法 1.创建目录,如创建~/test/mongo_sr1和-/test/mongo_sr2两个 ...

  2. mysql的双主模式配置

    第一台:192.168.0.160 第二台:192.168.0.170 主从配置,第一步:192.168.0.160 作为主数据库,192.168.0.170作为从数据库,配置如下: ======== ...

  3. MySQL数据库主从分离的配置方法

    1.介绍 MySQL数据库设置读写分离,可以使对数据库的写操作和读操作在不同服务器上执行,提高并发量和响应速度.现在的网站一般大点的,都采用有数据库主从分离.读写分离,既起到备份作用也可以减轻数据库的 ...

  4. MySQL Replication 详解MySQL数据库设置主从同步的方法

    MySQL同步的流程大致如下:  1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log). 2.从服务器(slave)的IO线程从主服务器(binl ...

  5. Centos下MySQL数据库主从双向同步配置

    MYSQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环.当一个从服务器连接到主服务 ...

  6. MySql数据库主主同步配置步骤

    测试环境:  192.168.1.192  192.168.1.193    mysql5.2     配置192服务器:  /usr/local/mysql/bin/mysql -uroot -p ...

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

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

  8. Docker Mysql主主同步配置搭建Demo

    主主同步配置和主从配置很相似,仅需稍做修改就可以了,对主从配置有疑问可以查看 上一篇文章. 进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下: --mysql ...

  9. MySQL热机双备之双主同步复制配置

    此配置方案来源于csdn前辈博客,奈何找不到出处了,抱拳!!! 1.  MySQL同步机制概述 MySQL支持单向.异步复制,复制过程中一台服务器充当主服务器,一台或多台服务器充当从服务器,双主同步要 ...

随机推荐

  1. Linux上iptables防火墙的基本应用教程

    iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装.清除iptables规则.iptables只开放指定端口.iptables屏蔽指定ip.ip段及解封. ...

  2. Sumdiv POJ - 1845 (逆元/分治)

    Consider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S m ...

  3. lodash学习资料

    二.Lodash Lodash是一个具有一致接口.模块化.高性能等特性的 JavaScript 工具库.它内部封装了诸多对字符串.数组.对象等常见数据类型的处理函数,其中部分是目前 ECMAScrip ...

  4. 分布式存储MooseFS

    MooseFS 简介 http://moosefs.org/ MFS特性 安装和配置简单方便   可靠性高(数据的多个拷贝被存储在多个不同的服务器上)   通过添加新的服务器或硬盘就可以实现容量的动态 ...

  5. VMware5.5-添加数据中心,集群及主机

    首先介绍下硬盘的三种设置格式,这个要搞清楚 虚机硬盘的三种格式 厚置备延迟置零 厚置备,分配10g空间,虚拟机没开机时就分配了: 延迟置零,没开机之前只分配空间,里面的数据不抹零,当开机写入数据时再抹 ...

  6. Python-copy()与deepcopy()区别

    http://blog.csdn.net/qq_32907349/article/details/52190796 学习过程中发现copy()和deepcopy()这对好基友实在是有点过分,搞的博主就 ...

  7. UDP与TCP

    网络模型分为OSI参考模型和TCP/IP参考模型 两台主机之间传输联系 TCP和UDP就是传输层的东西.叫做传输控制协议和用户数据报协议两者的区别是 网络通信底层通过Socket实现. UDP:Soc ...

  8. C++程序设计方法6:算法横向拆分

    例子1:负载监视器,如何在一个程序中实现对这些不同条件的适应呢? int main() { WindowDisplay display; Monitor monitor(&display); ...

  9. 快速排序 [Qsort]

    在做USACO1.4 等差数列的时候,我发现如果用结构体+sort就会超时,用二维数组+qsort就能AC,所以为了不忘记Quick Sort,我还是把代码贴出来以备以后要看吧. void qsort ...

  10. day4函数文件操作

    一.高效读取文件 1.使用with打开文件,程序运行完后会自动关闭打开的文件 2.修改文件,将文件中的123替换为a(简单粗暴方式) 3.打开两个文件,修改后将旧文件删除,将新文件名字改成旧文件的名称 ...