安装docker部分

坑点

docker拉镜像速度过慢

点击docker图标,点击邮件看到setting,setting界面上点击docker engine,配置如图所示

还有两个备用的镜像地址

"mirror.c.163.com","https://registry.docker-cn.com"

docker exec -it 容器id /bin/bash失败

可以尝试用 docker exec -it 容器id sh (我这样是可以解决的)

mysql数据库主主同步配置

配置过程

首先拉去docker镜像

首先拉取docker镜像,我们这里使用5.7版本的mysql:

docker pull mysql:5.7

然后使用此镜像启动容器,这里需要分别启动主从两个容器

MasterOne(主一):

docker run -p 3339:3306 --name mysqlOne -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

MasterTwo(主二):

docker run -p 3340:3306 --name myTwo -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

配置MasterOne(主一)

通过

docker exec -it 627a2368c865 /bin/bash

或者

docker exec -it 627a2368c865 sh

命令进入到MasterOne容器内部。627a2368c865是容器的id.

cd /etc/mysql切换到/etc/mysql目录下,然后vi my.cnf对my.cnf进行编辑。此时会报出bash: vi: command not found,需要我们在docker容器内部自行安装vim。使用apt-get install vim命令安装vim

会出现如下问题:

执行apt-get update,然后再次执行apt-get install vim即可成功安装vim。然后我们就可以使用vim编辑my.cnf,在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

复制代码

配置完成之后,需要重启mysql服务使配置生效。使用service mysql restart完成重启。重启mysql服务时会使得docker容器停止,我们还需要docker start mysql-master启动容器。

再次进入MasterOne容器,执行mysql -uroot -p123456进入mysql (前面创建容器时密码设置为123456,用户名默认为root)

//创建一个用户来同步数据

//这里表示创建一个slave同步账号slave,允许访问的IP地址为%,%表示通配符

GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';

//查看状态,记住File、Position的值,在masterTwo中将用到

show master status;

复制代码

小技巧:

查看容器IP:

docker inspect monemysql | grep IPA

配置MasterTwo

我们使用vim编辑my.cnf,在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

复制代码

之后重启mysql服务

再次进入MasterTwo容器中的mysql

//设置主库链接,master_host即为容器IP,master_log_file和master_log_pos即为在mone容器中,通过show master status查出来的值;

change master to master_host='172.17.0.2',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154,master_port=3306;

//创建一个用户来同步数据

GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';

//启动同步

start slave ;

//查看状态

show master status;

复制代码

其中master_log_file 以及master_log_pos的值就是前面说的MasterOne数据库中file以及position对应的值,host则是MasterOne容器的ip

再次配置MasterOne

//设置mtwo主库链接,参数详细说明同上

change master to master_host='172.17.0.3',master_user='slave',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=443,master_port=3306;

//启动同步

start slave ;

复制代码

其中master_log_file 以及master_log_pos的值是MasterTwo的file以及position对应的值,host172.17.0.3则是MasterTwo容器的ip

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

在MasterOne 以及MasterTwo容器中,查看:

show slave status\G;

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

验证

接下来请各位可以自行验证了。哈哈哈哈

参考文章

windows mysql主主配置_基于docker MySQL数据库主主同步配置(windows上)相关推荐

  1. docker redis 配置文件_基于Docker搭建Redis一主两从三哨兵

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:oscarwin juejin.im/post/5d26b03de51d454fa3 ...

  2. docker 镜像修改的配置文件自动还原_基于Docker搭建Redis一主两从三哨兵

    作者丨oscarwin来源:https://juejin.im/post/5d26b03de51d454fa33b1960 这段时间正在学习Redis和容器相关的内容,因此想通过docker搭建一套r ...

  3. nginx nodejs环境配置_基于docker的nodejs、php开发环境,包含多种组合安装

    dnnmmp 基于docker的nodejs.php开发环境 (docker,nodejs,php,nginx,mongo,mysql,redis) Dnnmmp包含以下组合 dnm(Docker + ...

  4. mysql主键标识_实体标识与数据库主键

    今天,我们将讨论DDD意义上的标识与数据库主键之间的区别. 我们经常将两者混合在一起,但它们真的是一回事吗? 实体标识 在DDD的背景下,标识是实体固有的东西. 只有实体拥有它; 它是用于区别于所有其 ...

  5. mysql简易购物车系统_基于PHP+Mysql简单实现了图书购物车系统的实例详解

    基于PHP+Mysql简单实现了图书购物车系统的实例详解,购物车,这是,页面,简单,图书 基于PHP+Mysql简单实现了图书购物车系统的实例详解 易采站长站,站长之家为您整理了基于PHP+Mysql ...

  6. keepalived mysql双主架构图_基于keepalived Mysql双主热备配置

    基于keepalived双主热备: 一.环境: OS:CentOS 6.5 X64 DB Version:Percona Mysql 5.7.15-9-log 路径:/app/mysql57 数据文件 ...

  7. python虚拟环境的安装和配置_基于virtualenv的Python虚拟环境的安装配置(Mac环境)...

    一.安装前提 明确自己的开发所需的python版本, Python 2.7.x 或者Python 3.6.x . 安装 Python 2.7.x 或Python 3.6.x 版的virtualenv. ...

  8. yolov3gpu配置_基于图灵架构GPU进行keras-yolov3的配置

    如果你有幸能够看到这一篇专栏,我相信你有很大的可能就不会是一个纯小白.其他的配置选项在csdn上都有很多详细的说明,这里就不过多赘述. 本人之前使用的yolov3模型都是基于帕斯卡架构,用我笔记本的1 ...

  9. pi数据库同步解决方案_MySQL数据库主主同步配置实战

    最近云服务器大减价,趁机买了几台,博客就放在其中一台上,为了不让剩下的两台服务器闲置,打算都利用起来,对博客网站进行负载均衡.使用两台数据库进行主主同步配置,扩展网站数据库架构,提高数据库的读写性能. ...

最新文章

  1. ORACLE 10g 数据库体系结构图
  2. intelliJ idea如何安装、配置
  3. qt 将不同的数据类型组成一个新类型_SQL 通用数据类型
  4. easyui datagrid 中怎么选中所有页面的数据_学会这5个Excel中常用技巧,可以准时下班去摆摊了...
  5. 实验8.1 链表类的定义与实现
  6. Cookie介绍与操作
  7. Oracle的SQL语法提示30例,INDEX_JOIN,ORDERED,USE_NL,LEADING
  8. 《机器学习实战》读书笔记——Logistic回归
  9. 二进制流 最后一段数据是最后一次读取的byte数组没填满造成的
  10. pythonfilelist_Python 列表list使用介绍
  11. 【MyEcplise】build workspace卡死
  12. c++builder读取系统时间Now函数
  13. MYSQL数据库高级SQL语句详解
  14. JVM年轻代和老年代垃圾回收
  15. Java8新特性:等同 final 效果(Effectively Final)
  16. 组合模式-Composite Pattern
  17. 12小时制(AM PM)字符串转换为24时制
  18. 南方电信电网接口API源码
  19. 【EVE-NG】模拟器打不开/分不到地址
  20. 优启通制作系统u盘_优启通u盘制作工具-easyu优启通2020官方下载-独木成林

热门文章

  1. B表中的pid对应A表中id,查询A表中数据,根据b表中对应a表中该id的数据数目排序...
  2. 年底怎样才能“被评优”
  3. ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能(六)
  4. PMCAFF微课堂已结束 | 前YY产品总监深度揭秘P2P运营推广精髓
  5. 写一个实时监控IP连通性的小脚本
  6. linux下查看系统进程占用的句柄数
  7. Nginx uWsgi Django环境搭建
  8. MV* 框架 与 DOM操作为主 JS库 的案例对比
  9. C#中判断某软件是否已安装
  10. 暴雪帝国倾倒前的颓萎:积重难返辉煌渐淡