基于docker 的mysql主从搭建

370 阅读2分钟

基于docker 容器搭建mysql 主从

1. 下载docker 镜像,这里不在详细描述

image.png

2.创建临时镜像,并且做好文件映射,拷贝好配置

image.png

在此处创建临时文件夹app ,用来做映射,容器启动之后使用docker exec -it 容器id /bin/bash 进入bash,将/etc/mysql/下文件拷贝到app文件夹中,由于容器内 的app 文件夹和外部app 文件夹做了映射,所以外部文件夹也会出现拷贝后的相应文件。

3.删除临时镜像文件,创建我们的第一个master1 节点

docker run --privileged=true --name master1 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /mydata/mysql/master1/conf.d:/etc/mysql/conf.d -v /mydata/mysql/master1/my.cnf:/etc/mysql/my.cnf -d  mysql:5.7

创建第一个master 节点成功后,接着创建其他节点。

image.png

4.修改配置文件

1. 首先是master 节点文件

image.png

如果不放心,可以重启主节点后可以进入容器看看是否映射成功

image.png

image.png

2.slave节点
2.1 创建节点

-- link: 容器内连接master1 节点:别名master 。 如果不加这个参数,那么同一个docker network之间两个容器是无法通信的

docker run --privileged=true --name slave1 --link master1:master -e      MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -v /mydata/mysql/slave1/conf.d:/etc/mysql/conf.d -v /mydata/mysql/slave1/my.cnf:/etc/mysql/my.cnf -d mysql:5.7
2.2 修改配置文件

启动后修改server—id,记得不要和主节点相同 ,开启二进制日志(复制粘贴过来修改一下server-id 就行),这里不做其他描述.

2.3 指定slvae 上的master 同步信息

image.png

image.png

image.png

image.png

    >master_log_file :指定同步使用的二进制文件名称,这个名称可以在主节点上查看。
    master_log_pos :二进制日志同步开始的位置。

3. 测试主从是否搭建成功

  • 在主节点上新建mall数据库,并且新建一个usr 表

image.png

  • 切换到从库查看,从库中也出现了对应的数据库和表,可以进行下一波尝试。

image.png