mysql 5.7 docker 主从复制架构搭建教程

分享mysql 5.7 docker 主从复制架构搭建教程,供大家参考,具体内容如下

环境版本:
MySQL :  5.7.13
Docker : 1.11.2
CentOS : 7.1

1.先在两个物理机上分别安装两个MySQL.命令如下

代码如下:

docker pull mysql:5.7.13 
docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13

2.在主库上创建一个复制账户 

代码如下:

GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'192.168.2.103' IDENTIFIED BY 'qaz.00JK';

复制账户为: rep1
指定从库的IP必须为: 192.168.2.103 
复制密码为: qaz.00JK

3.修改主库的配置文件 (麻烦,应该有更方便的修改方式)

3.1先从docker拷贝配置文件到主机/root 目录:

docker cp anuo-mysql:/etc/mysql/my.cnf /root

3.2在主机打开 my.cnf , 在 [mysqld] 节点最后加上

log-bin=mysql-bin 
server-id=1

3.3 再把此文件上传到docker mysql 里面覆盖

docker cp /root/my.cnf  anuo-mysql:/etc/mysql/my.cnf

3.4 重启 mysql 的docker , 让配置生效
docker restart anuo-mysql

4. 修改从库的配置文件 

跟第三步一样, 唯一不同是 
server-id=2

5. 开始备份, 在主库执行以下命令, 让主库所有表置于只读不能写的状态, 这样达到主从库数据一致性

FLUSH TABLES WITH READ LOCK;

6. 将主库的数据库备份在从库还原

用navicat for mysql 很方便操作

7. 从库还原后, 释放主库的读锁, 这样主库恢复写权限

unlock tables;

8.配置从库连接主库, 在从库上执行  

CHANGE MASTER TO
MASTER_HOST='192.168.2.108',
MASTER_PORT=3306,
MASTER_USER='rep1',
MASTER_PASSWORD='qaz.00JK',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=898;

最后两项 
MASTER_LOG_FILE 和  MASTER_LOG_POS 
在主库执行 : SHOW MASTER STATUS; 命令可以取得 
对应的字段是 File 和 Position

9. 在从库启动 slave 线程开始同步
START SLAVE;

10.在从库 查看同步状态 
show slave status; 
如果看到 Slave_Io_State 字段有 :

Waiting for master to send event ...  
那就成功了 ! ! !

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Docker方式实现MySql 主从复制(实践篇)

    本文实践了用Docker方式来实现基于binlog的MySql主从复制.关于MySql主从复制的原理将在下一篇中进行讲解. 一些数据的本地存储目录结构 mysql >tree -L 2 . ├── data │ ├── master01 │ └── slave01 ├── master01 │ └── master01.cnf └── slave01 └── slave01.cnf master01.cnf配置 [mysqld] log-bin=mysql-master01-bin # 使用bi

  • 详解如何利用docker快速构建MySQL主从复制环境

    在学习MySQL的过程中,常常会测试各种参数的作用.这时候,就需要快速构建出MySQL实例,甚至主从. 考虑如下场景: 譬如我想测试mysqldump在指定--single-transaction参数的情况下,对于myisam表的影响. 本来想在现成的测试环境中进行,但测试环境中,有大量的数据,执行mysqldump进行全备,产生的SQL文件,很难基于表进行搜索. 这个时候,就特别渴望能有一套干净的实例进行测试. 此刻,快速构建能力就显得尤为必要,很多童鞋可能会问,通过脚本不就能实现么?为什么要

  • 使用Docker容器搭建MySql主从复制

    1. 编写主MySQL的Docker文件 新建文件夹,命名为MySQL-master-v1.在文件夹mysql-master-v1中新建文件Dockerfile和master.cnf.笔者推荐使用的编辑器是Visual Studio Code.利用编辑器将这两个文件的编码设置成UTF-8.因为本文介绍安装到Linux系统下,所以笔者建议读者把换行符设置成LF,以兼顾Linux操作系统.按照如下内容编写这两个文件. Dockerfile FROM mysql:5.7 # set timezone

  • mysql 5.7 docker 主从复制架构搭建教程

    分享mysql 5.7 docker 主从复制架构搭建教程,供大家参考,具体内容如下 环境版本: MySQL :  5.7.13 Docker : 1.11.2 CentOS : 7.1 1.先在两个物理机上分别安装两个MySQL.命令如下 复制代码 代码如下: docker pull mysql:5.7.13  docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13 2.

  • MySQL 4种常用的主从复制架构

    一主多从复制架构 在主库读取请求压力非常大的场景下,可以通过配置一主多从复制架构实现读写分离,把大量的对实时性要求不是特别高的读请求通过负载均衡分部到多个从库上(对于实时性要求很高的读请求可以让从主库去读),降低主库的读取压力,如下图所示. 在主库出现异常宕机的情况下,可以把一个从库切换为主库继续提供服务. 在主从复制场景下会出现主从延迟,想想该怎么解决? 多级复制架构 一主多从的架构能够解决大部分读请求压力特别大的的场景的需求,考虑到MySQL的复制需要主库发送BINLOG日志到从库的I/O线

  • windows server 2008/2012安装php iis7 mysql环境搭建教程

    windows server 2008/2012安装php iis7 mysql环境搭建教程,具体内容如下 1.安装IIS windows server 2008的IIS版本为7.0,包括fastcgi,安装十分方便. 打开"开始"菜单→"服务器管理",出现服务器管理界面(图1) 图1 - 服务器管理 滚动条下翻,或者点击主菜单的"角色",然后点击"添加角色",出现向导页面后点击下一步,选择"web服务器(IIS)&

  • Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: http://windows.php.net/downloads/releases/php-5.5.8-nts-Win32-VC11-x86.zip 2.MySQL下载地址: http://cdn.mysql.com/Downloads/MySQLInstaller/mysql-installer-com

  • Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2019 PHP版本:php 7.3.11 MySQL版本:MySQL 8.0.18.0 二.相关软件下载: 1.PHP下载地址: https://windows.php.net/downloads/releases/php-7.3.11-nts-Win32-VC15-x64.zip 2.MySQL下载地址: https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installe

  • Docker微服务的ETCD集群搭建教程详解

    目录 etcd的特性 Etcd构建自身高可用集群主要有三种形式 本次搭建的基础环境 1.将服务器挨个添加进集群 2.将服务器统一添加进集群 etcd api接口 服务注册与发现 etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现.etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性.Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的

  • Docker案例分析:搭建MySQL数据库服务

    目录 1 创建配置和数据目录 3 从镜像内复制配置文件到宿主机 4 创建并运行mysql容器 5 宿主机连接数据库 5.1 终端命令连接 5.2 数据库工具连接 6 查看mysql日志 使用官方的mysql镜像搭建数据库服务,目前的latest版本对应8.0.19版本,为防止后续官方更新版本后下面步骤出现兼容性问题,使用镜像时可指定8.0.19版本. 1 创建配置和数据目录 在本机创建目录用于存储mysql的配置和数据. 配置文件目录:~/docker/conf/mysql 数据文件目录:~/d

  • Windows下Java+MyBatis框架+MySQL的开发环境搭建教程

    MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来. MyBatis是在Apache许可证 2.0下分发的自由软件,是iBATIS 3.0的分支版本.其维护团队也包含iBATIS的初创成员. 与其他的对象关系映射框架不同,MyBatis并没有将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联.MyBatis允许用户充分利用数据库的各种功能,例如存储过程.视图.各种复杂的查询以及某数据库的专有特性.如果要对遗留数据库.不规范的数据

  • Docker实践之搭建wordpress的方法

    WordPress是一个非常著名的PHP编写的博客平台,发展到目前为止已经形成了一个庞大的网站平台系统.在WP上有规模庞大的插件和主题,可以帮助我们快速建立一个博客甚至网站. 在Windows上可以非常方便的安装WordPress,因为IIS上集成了WordPress的一键安装包.而在Linux上安装WordPress就比较复杂了,我们需要配置PHP环境.Apache或者Nginx服务器.MySQL数据库以及各种权限和访问问题.所以在Linux上最好的办法就是使用Docker来安装WordPre

  • Docker简单入门使用教程

    前言: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上.近几年来,Docker 在国内发展的如火如荼,特别是在互联网公司, Docker 的使用是十分普遍的,极大提高了应用的维护效率,降低了云计算应用开发的成本.本篇文章主要是带你入门Docker,介绍Docker的安装及简单使用. 1.安装Docker 想要学习Docker,我们首先要安装Docker,从 17.03 版本之后分为 CE(Co

随机推荐