Docker实现MySQL主从复制(主主复制同理)

  因为最近在学习MySQL,看到很多地方有“分库分表”,“读写分离”的字眼,就想尝试一下吧!

首先,因为本人经济能力有限,买不起那么多服务器,所以就借用Docker来搭建虚拟机来作为两台服务器。

一、准备主从服务器

  1、创建主服务器

$docker run -it --name=mysql_master ubuntu:14.04 /bin/bash

  

  2、创建从服务器

$docker run -it --name=mysql_slave ubuntu:14.04 /bin/bash

  

至此,两台服务器准备完毕,参数如下:

操作系统(OS):Ubuntu 14.04

主服务器IP:172.17.0.2

从服务器IP:172.17.0.3

二、在主从服务器上安装MySQL

  因为版本问题,需要先更新一下软件源(如果不更新的话,后面安装MySQL的时候会提示没有安装包)

$ apt-get update

我这里安装MySQL也只需要一步就可以了

apt-get install mysql-server

中间会出现确认的停止,按“y”即可。

最后会出现让你输入MySQL的root用户的登录密码,后面会用到。

再确认一次密码

至此,主从服务器MySQL的安装完成

三、搭建MySQL主从复制

这里简单说一下主从复制的原理,就是根据MySQL的日志文件,将主服务器的MySQL操作日志文件发送给从服务器,让从服务器执行日志文件,达到主从复制的目的。

  1、配置主服务器(以下在主服务器中操作)

    在主服务器中找到MySQL的配置文件(my.cnf),修改该配置文件。(最近也在学习Linux基础,小秀一把)

$ find -name mf.cnf

表示配置文件在这个目录

然后修改该文件

$ vi /etc/mysql/my.cnf

然后就进到这个界面

然后找到这么几行,这个就是我们要配置的地方了

把server-id和log_bin前面的“#”的注释符去掉即可。

server-id:用于识别服务器MySQL,以后只要是有关于做MySQL集群的,server-id在集群中一定是要唯一的。

log_bin:用于存放二进制日志文件的,其他MySQL就是根据这个文件进行复制的。

其他可以先不用管。

保存退出即可。之后需要重启MySQL服务(service mysql restart)

然后在MySQL进行授权,至于为什么要授权呢?其他服务器的MySQL要获取日志文件总要一些权限吧

登录MySQL

这个就比较尴尬,是MySQL服务没开起来的原因

出现红色一行即为开启成功,然后再登录MySQL就可以了。

然后就是授权了,因为是主从复制,所以授权命令有点特殊,正常的话可以看下我之前写的一篇。

其中以后会用到的是,用户名和密码,即“usr”和“123”,其中“flush privileges”是更新权限的命令。

然后就是查看主服务器相关日志文件的信息。

这里的文件“mysql-bin.000001”和“48481”我们会用到。

然后退出MySQL,再来看看我们的日志文件生产没有。日志文件生成的目录在上面的配置中也有。

有了这个文件就说配置已经生效了

2、配置从服务器

  进入从服务器,也是一样,要修改MySQL的配置文件(my.cnf),server-id一定不能与主服务器的相同

这样既可

保存退出,重启MySQL服务(service mysql restart)

然后进入MySQL,接收主服务器的日志文件。

是不是在这里看到很多熟悉的信息?

master_host:发送日志文件的主机

master_user:被授权的用户

master_password:用户密码

master_log_file:日志文件名

master_log_pos:日志文件位置

最后在查看从服务器的状态。

红框里的两行都为Yes,即为成功了!!!

如果不是,就多检查检查以上步骤。

最后就来验证一下吧。

1、在主服务器创建数据库

2、在从服务器创建数据库

最后结果说明,主从复制只是单向的复制,那如何进行双向的复制,这个就是主主复制了。

实现主主复制的效果也很简单,在配置的时候,将在主从服务器所做的再反过做一次就好。

即,在从服务器进行一次授权,在主服务器MySQL进行配置就好

原文地址:https://www.cnblogs.com/inttochar/p/9200953.html

时间: 2024-08-29 15:10:36

Docker实现MySQL主从复制(主主复制同理)的相关文章

基于Docker的MySQL主从复制搭建及原理

为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突 Docker使用步骤简便,启动容器在秒级别 利用Docker搭建主从服务器 首先拉取docker镜像,我们这里使用5.7版本的mysql: docker pull mysql:5.7 然后使用此镜像启动容器,这里需要分别启动主从两个容器 Master(主): docker run -p 3339:3306 --

MySQL 主从复制、主主复制、半同步复制

MySQL 复制 =============================================================================== 概述: =============================================================================== MySQL Replication:   1.主从复制的目的和架构 ★Master/Slave(主/从) Master: write/read Slave

mysql 主从复制+双主复制

我们在使用MySQL Server数据库时,可能会遇到这种问题,如果其中一台mysql数据库宕掉后,我们希望以最短的时间进行解决,并尽快使用数据库,但是如果遇到一些无法快速修复的故障时,该怎么办呢? 我们可以设想,如果这是有另外一台和这个数据库一模一样的数据库时,问题就不一样了,怎么才可以实现实时,并自动的备份或者复制呢?   Mysql的主从复制: 1.主机安装好mysql服务后,首先修改my.cnf文件,添加两行,其中server id确保唯一 2.备机修改my.cnf 3.两台mysql重

mysql主从复制、主主复制与半同步复制的实现

1.主从复制 实验环境:2台装有mariadb的centos6,ip地址分别为192.168.198.203(master ),192.168.194.90(slave) 测试:在master上新建一个数据库,查看slave中是否同步 ##################################################### master上的配置: a. 启动二进制日志:在mariadb的配置文件/etc/my.cnf中添加 [mysqld] log_bin=mysql-bin

MySQL主从复制与主主复制

1.简介 MySQL作为世界上使用最为广泛的数据库之一,免费是其原因之一.但不可忽略的是它本身的功能的确很强大.随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时数据库集群就很好的解决了这个问题了.采用MySQL分布式集群,能够搭建一个高并发.负载均衡的集群服务器(这篇博客暂时不涉及).在此之前我们必须要保证每台MySQL服务器里的数据同步.数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制. 回到顶部 2.环境说明 两台linu

mysql主从复制和主主复制

一.准备(主从都需要配置): yum -y install mysql mysql-server #安装mysql yum -y install ntpdate #安装时间同步 echo '*/1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root #配置网络时间同步 service mysqld start #启动服务 chkconfig --add mysqld #添加为系

keepalived实现对mysql主从复制的主备自动切换

备注:君子性非议也,善假于物也. 温故而知新,可以为师矣. 使用MySQL+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台 MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. 实验环境中用两台主机搭建了一个mysql主从复制的环境,两台机器分别安装了keepalived,用一个虚IP实现mysql服务器的主备自动切换功能. 模拟环境: VIP:1

基于Docker搭建MySQL主从复制

摘要: 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建.根据网上教程走还是踩了一些坑,不过所幸最终搭建成功,因此记录下来,避免以后踩了重复的坑. 搭建环境 Centos 7.2 64位 MySQL 5.7.13 Docker 1.13

基于 Docker 搭建 MySQL 主从复制

本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 根据网上教程走还是踩了一些坑,不过所幸最终搭建成功,因此记录下来,避免以后踩了重复的坑. 搭建环境 Centos 7.2 64位 MySQL 5.7.13 Docker 1.13.1 接下来,我们将会在一台服务器上安装docker,并使用docker运行三个MySQL容器,分别为一主两从. 安装docker 执行命令 如果有提示,一路y下去