docker搭建数据库主从复制
首先需要安装docker镜像:
docker pull mysql:5.7
由于需要启动数据库才可以进入数据修改my.cnf文件,可以选择安装vi命令,也可以选择挂在
在此选择是挂载的方法进行安装:
docker run --name mastermysql -d -p : -e MYSQL_ROOT_PASSWORD=1234 -v /usr/master/data:/var/lib/mysql -v /usr/master/conf/my.cnf:/etc/mysql/my.cnf mysql:5.7
docker run --name slavermysql -d -p : -e MYSQL_ROOT_PASSWORD= -v /usr/slaver/data:/var/lib/mysql -v /usr/slaver/conf/my.cnf:/etc/mysql/my.cnf mysql
这样就可以创建两个mysql容器,但是需要修改my.cnf,上面创建的是文件文件夹
进入 cd /usr/master
执行 rm -rf my.cnf
再执行 vi my.cnf
加入:
[mysqld]
## 同一局域网内注意要唯一
server-id=
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
在从数据库中也是如此操作:
在文件中加入:
[mysqld]
## 设置server_id,注意要唯一
server-id=
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
这样就可以了:
再次启动两个mysql容器:
首先进入主数据:
docker exec -it mastermysql bash mysql -u root -p 输入密码 执行:
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by ''; show master status; 这里是需要记住相关内容的

还需要给两个实例设置独立的ip
执行:

docker inspect --format='{{.NetworkSettings.IPAddress}}' slavermysql
docker inspect --format='{{.NetworkSettings.IPAddress}}' mastermysql
再进入从数据库:
docker exec -it slavermysql bash mysql -u root -p
输入密码 change master to master_host='172.17.0.3',master_user='backup',master_password='',master_log_file='mysql-bin.0000003',master_log_pos=,master_port=; 执行
start slave;
再执行
show slave status\G;

master_host :Master的地址,指的是容器的独立ip,可以通过docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id查询容器的ip
master_port:Master的端口号,指的是容器的端口号
master_user:用于数据同步的用户
master_password:用于同步的用户的密码
master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
然后就可以看到:

再在主数据库中创建test数据库:

再进入从数据库中查看:

代表已经安装成功
docker搭建数据库主从复制的更多相关文章
- Docker搭建MySQL主从复制
Docker搭建MySQL主从复制 主从服务器上分别安装Docker 1.1 Docker 要求 CentOS 系统的内核版本高于 3.10 [root@localhost ~]# uname -r ...
- MySQL(14)---Docker搭建MySQL主从复制(一主一从)
Docker搭建MySQL主从复制(一主一从) 上一篇博客写了MYSQL主从复制原理 : MySQL(13)---MYSQL主从复制原理 这篇我们来写 Docker搭建MYSQL主从复制(一主一从) ...
- Docker搭建 MySQL 主从复制
为什么选 Docker 搭建主从复制需要两个以上的MySQL, 使用 Docker 非常方便.如果以前没用过,找个简单的文档看看,熟悉一下命令. 搭建过程 1.下载镜像 docker pull mys ...
- docker搭建数据库高可用方案PXC
前言 本方案主要目的是学习, 该方案不太合适于企业项目 是什么? 白话点, 是个提供了必要环境的虚拟机(类似于java的导入部分包一样和c++的头文件差不多), 所以它比普通的VMWare或者Virt ...
- 基于Docker搭建MySQL主从复制
摘要: 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 本篇博文相对简单,因为是初次使用D ...
- 基于 Docker 搭建 MySQL 主从复制
本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 根据网上教程走还是踩了一些坑,不过所幸最终 ...
- 基于Docker的Mysql主从复制搭建
来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg 为什么基于Docker搭建? 资源有 ...
- Mongodb数据库学习系列————(一)Mongodb数据库主从复制的搭建
Mongodb数据库主从复制的搭建 Writeby:lipeng date:2014-10-22 最近项目上用到了位置查询,在网上 ...
- Mysql数据库主从复制搭建
Mysql数据库主从复制原理: 主库开启bin-log日志,同时生成IO线程.IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行:生成标识号 server i ...
随机推荐
- 【Android 多媒体应用】使用MediaCodec解码使用SurfaceView显示视频
1.MainActivity.java import android.app.Activity; import android.os.Bundle; import android.os.Environ ...
- Git分支和指针
Git中的分支本质上是个指向commit对象的指针. 在当前commit点创建一个新的分支test git branch test 创建了一个新的可变指针指向f30ab commit Git 是如何 ...
- DAY11-MYSQL数据备份、pymysql模块
一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接 ...
- day17-jdbc 1.课程介绍
- C++对二进制文件的操作实例
有5个学生的数据,要求: (1)将它们存放到磁盘文件中: (2)将磁盘文件中的第1,3,5个学生数据读入程序,并显示出来: (3)将第三个学生的数据修改后存回磁盘文件中的原有位置: (4)从磁盘文件读 ...
- ROS Learning-010 beginner_Tutorials 编写简单的启动脚本文件(.launch 文件)
ROS Indigo beginner_Tutorials-09 编写简单的启动脚本文件 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.0 ...
- HiveServer2的配置使用
HiveServer2的配置和使用 hive-site.xml配置 hiveserver2的配置 <property> <name>hive.support.concurren ...
- 第二篇:MySQL库相关操作
一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MyS ...
- Python字典内置方法
Python字典包含了以下内置方法: 序号 函数及描述 1 radiansdict.clear()删除字典内所有元素 2 radiansdict.copy()返回一个字典的浅复制 3 radiansd ...
- Entity Framework Code-First(19):Seed Data
Seed Database in Code-First: You can insert data into your database tables during the database initi ...