从零开始,通过docker实现mysql 主从复制,图文并茂,保证可以实现!
1.安装镜像
第一次实现docker实现mysql 主从复制的时候,各种百度,各种热折腾,用了业余几天时间才实现!!现在把实现的详细过程,全部写出来,希望参对大家有所帮助。首先,准备好环境,镜像:CentOS-7-x86_64-DVD-1503-01.iso。用虚拟机安装,我的VMware Workstation14版本,安装虚拟机的过程,我不再这里讨论了。安装好后,如下:
通过ifconfig,不能查询得ip地址,得用ip addr
2.安装docker


vim 没装,其实vi 也可以用,但vim可以对关键字加亮,所以安装vim ,命令:

退出保存。
启动docker:
# service docker start //centos6及之前的版本

查看镜像

此时没有镜像,抓取镜像:
抓取镜像

再查看镜像,此时已经有镜像了:
创建docker 容器(可以根据一个镜像创建多个容器)
docker run -tid 镜像ID/bin/bash //非centos7

查看容器列表

进入容器

进入容器后,注意变化,之前是root@localhst,现在变成root@容器id,也就是容器ID,现在进入容器后,你可以理解成,一个全新的linux操作系统,就像我们wondow下安装VMware Workstation后,成功通过镜像安装一台linux的道理是样的!你在容器的干什么,装什么不会影响到宿主,两个操作系统是隔离的,独立的。
退出容器的命令是:exit。
接下来,按照这样步骤,再创建一台docker 容器。就是有一台宿主操作系统,然后通过docker,再创建两个docker容器
3.两个docker 容器,分别安装mysql
安装mysql就三个命令就装好了:

wget 没有安装,现在通过命令安装wget
再次执行:
如下遇到下图,直接输入:y
安装完成!linux 安装mysql,就三条命令就可以了,前提条件是得有网络,在无网络情况下linux 安装mysql很麻烦也挺困难的。
4.开始搭建主从复制
现在架构如下:
启动mysql
# systemctl start mysql
登陆mysql
mysql -uroot //默认没有密码
设置mysql初始密码:
mysql> set password = password(‘你的密码’)远程登陆授权

主从复制原理,是通过binlog实现的,如下图
两个docker容器的mysql都改

server-id 这个千万不能跟别的mysql的配置一样,无论主机还是从机server-id不能相同
主要server-id = 2和log-bin = mysql-bin,一定要配置,其它的可以没有
查看容器IP:
我以mad_euclid为主机,distracted_wright为从机。
登陆主机mysql
这个时候就产生binlog了,离成功不远了!

查看主机状态:
查看从机状态:
5.大功靠成
验证,在主机上创建数据库,然后创建表,进行增删改查,会自动同步到从机上,从而实现主从复制!!哈哈,以后出去面试,可以吹牛逼了。现在互联网项目,都是读写分离,高并发解决方案之一。
在主机上创建数据库:
至此,主从复制功能,全部实现!!!!!
主从复制实现了,主主复制也是一样的,反过来就行可以。
6.排错

