基于Docker容器的MySql主从复制环境搭建

第一步:准备Mysql的Docker的镜像文件

当前Docker的镜像文件名字为:mysql.tar     
备注:当前Mysql数据库     用户名为:root 密码为root
保证Docker容器启动成功的状态

使用Docker load 命令进镜像文件加载到Docker镜像中
docker load < mysql.tar    等待加载
加载完毕之后
docker images   查看是否在镜像中心

第二步:设置目录 【保证Mysql数据持久化】

为了使MySql的数据保持在宿主机上,我们先建立几个目录
建立数据库存储目录 
mkdir -pv /root/docker/mysql/data 
在data目录下创建 master和slave目录,用于存储数据库文件
Mkdir master     创建主节点数据存储路径
Mkdir slave        创建从节点数据存储路径

建立主节点配置文件目录    mkdir -pv /root/docker/mysql/master
建立从服务器的配置目录     mkdir -pv /root/docker/mysql/slave

第三步: 设置主从服务器配置 

vi ./master/master.cnf
主节点文件如下
[mysqld]
log-bin=mysql-bin
server-id=101

从节点文件如下

vi ./slave/slave.cnf 

[mysqld]
log-bin=mysql-bin
server-id=102

注意:从库里的server-id必须是数字类型。非0除外

第四步:创建Docker主从Mysql容器

主节点:
docker create --name master -v /root/docker/mysql/data/master:/var/lib/mysql -v /root/docker/mysql/master:/etc/mysql/conf.d  -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7

从节点:
docker create --name slave  -v  /root/docker/mysql/data/slave:/var/lib/mysql -v /root/docker/mysql/slave:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -p 3316:3306 mysql:5.7

此处容器创建好了,并没有运行,所以需要Docker ps –a 查看容器ID【切记区分,主从节点】

第五步:启动容器

docker start master     【根据别名启动】
docker start slave          

查看启动的容器Docker ps

第六步:登录主服务器mysql

将上述进入    主节点容器ID和从节点容器ID   复制下来 放入文本中备用

查询master的状态 ,进入msql容器

docker exec -it 8cddceee602c /bin/bash

登录msql服务

mysql -u root –p

第七步:展示主节点Mysql

mysql> show master status;

记录ip、File、Position留给从节点用
上述 IP为 172.17.0.3   file: mysql-bin.000003  Position: 154
在主节点库上执行,创建数据同步的用户 
mysql> SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
mysql> GRANT REPLICATION SLAVE ON *.* to backup@'%' identified by '123456';
mysql> flush privileges;

第八步:登录从节点服务器的mysql,设置与主服务器相关的配置参数

mysql>SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
mysql>change master to master_host='172.17.0.3',master_user='backup',master_password='123456',master_log_file=' mysql-bin.000003',master_log_pos=154;

说明: 
master_host为mysql容器主节点Master里的地址,不能写127.0.0.1 
master_user是在主库创建的用户 
master_log_pos是主节点库show master status;查询出的Position

启动slave服务

start slave;

查看从库slave上查看主从状态【失败】

错误信息:Connecting to master 多半是连接不通,需要检查配置是否有问题,通过是ip,File、Position配置得不对。  返回去检查

查看从库slave上查看主从状态【成功】

如果Slave_IO_StateWaiting for master to send event 就是成功了

第九步:在主库上创建数据库、表观察从库上是否会同步

查看容器宿主机IP

数据到了丛机器,主从架构成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值