使用docker搭建mysql主从复制

废话不多说,直接开始!!

关于docker使用命令以及如何在Linux上安装docker,建议百度!!

(此文篇幅较长,如果没有耐心看完,可以复制shell命令进行搭建)

需要准备的环境,因为只有一台服务器,故采用不同端口号的方式搭建

1、首先查看docker镜像的版本

docker search mysql

name:代表要拉取的镜像的名字

description:对镜像的描述

starts:代表镜像的starts数

official:代表是否是官方

2、拉取docker镜像,我们这里使用mysql5.7为例

docker pull mysql:5.7

3、拉取镜像之后查看镜像

docker images

4、镜像查看完成之后,开始搭建mysql环境主数据库

docker run -p 3306:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

-p 代表的是docker端口号映射到宿主机的端口号

--name 代表的是搭建mysql的名字

-e 代表的是设置mysql的密码 

-d 代表的是使用的镜像的名字,注:此处要和docker images命令下的镜像名字对应,比如说docker images展示的REPOSITORY是mysql,TAG展示的是5.7,那么我们应该写 -d mysql:5.7

-v 代表的是docker挂载的对应的宿主机的路径,注:此处没有使用

5、搭建好之后使用数据库连接工具测试一下

6、配置主数据库

使用docker exec命令进入到容器内部

docker exec -it mysql-master /bin/bash

切换到mysql目录下

cd /etc/mysql

执行vim my.cnf进行编辑,可能会报错bash:vi:command not found,需要我们在容器内部安装

apt-get update
apt-get install vim

即可成功安装vim,然后在使用vim编辑my.cnf文件

vim my.cnf

在my.cnf文件中添加一下配置:

[mysqld]
#id要唯一
server-id=100
#配置日志前缀
log-bin=mysql-bin
#日志有变化的时候,从节点自动更新
log-slave-updates
#从节点跳过主节点执行的错误日志
slave-skip-errors=all

7、配置完成之后,需要重启mysql服务使配置生效,并且启动docker中的mysql

service mysql restart
docker start mysql-master

8、同样进行配置从数据库

docker run -p 3308:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

进行从数据库的连接测试

 

同样在从节点加入以下配置

docker exec -it mysql-slave /bin/bash
cd /etc/mysql
vim my.cnf
[mysqld]
#id要唯一
server-id=101
#配置日志前缀
log-bin=mysql-bin
#日志有变化的时候,从节点自动更新
log-slave-updates
#从节点跳过主节点执行的错误日志
slave-skip-errors=all

9、重启mysql

docker restart mysql-slave

10、连接到mysql,分别在主数据库和从数据库执行以下命令

SHOW VARIABLES like 'server_id';

11、连接到mysql,在主数据库执行以下命令

show master status;

File:代表日志文件,Position:代表从日志文件的哪一行开始

12、连接到mysql,在从节点上执行以下命令,注:执行错了没关系,以最后一次的执行为主

change master to 
master_host='42.192.54.74',
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=154;


##host代表的master所在的ip
##log_file代表master的File名称
##log_pos代表master的Position

13、在从节点上开启同步

start slave;

14、查看从节点的同步状态

show slave status\G;

如图展示的两个参数都为Yes,即表示配置成功

注:如果Slave_IO_Running是No的话,可以关闭一下防火墙试试

如果出现其他错误,可以查看错误日志文件/var/log/mysql/error.log

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值