MySql教程

docker实现mysql主从复制

本文主要是介绍docker实现mysql主从复制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、准备镜像

使用 bitnami/mysql 镜像

网址:https://hub.docker.com/r/bitnami/mysql

这里的镜像版本号为 5.7.30

下载镜像

docker pull bitnami/mysql:5.7.30

保存镜像到本地、加载本地镜像文件

docker save bitnami/mysql:5.7.30 -o bitnami.mysql.5.7.30.tar

docker load -i bitnami.mysql.5.7.30.tar

二、搭建mysql主从复制

1.主机准备

主机名 IP地址
docker101 192.168.7.101
docker102 192.168.7.102

两台主机均安装 bitnami/mysql:5.7.30 基础镜像

2.主节点主机操作

创建持久化目录,并赋予权限

mkdir -p /data/mysql
chmod 777 /data/mysql

创建主节点

docker run -d --name mysql-master \
  --restart always \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=admin \
  -e MYSQL_REPLICATION_MODE=master \
  -e MYSQL_REPLICATION_USER=vvrepl \
  -e MYSQL_REPLICATION_PASSWORD=vvrepl \
  -v /data/mysql:/bitnami/mysql/data \
  -e TZ=Asia/Shanghai \
  bitnami/mysql:5.7.30

说明:

  • --name mysql-master 指定实例名称 “mysql-master” 可以根据需要更改
  • --restart always 容器退出时总是重启容器
  • -p 3306:3306 暴露容器的端口给主机,前面是主机端口,后面是容器端口
  • -e MYSQL_ROOT_PASSWORD=admin 配置root用户的密码为 “admin”
  • -e MYSQL_REPLICATION_MODE=master 复制模式,可选值master/ slave
  • -e MYSQL_REPLICATION_USER=vvrepl 第一次运行时在主服务器上创建的复制用户
  • -e MYSQL_REPLICATION_PASSWORD=vvrepl 复制用户密码
  • -v /data/mysql:/bitnami/mysql/data 容器卷挂载,宿主机的 /data/mysql 目录与容器的 /bitnami/mysql/data 挂载
  • -e TZ=Asia/Shanghai 设置容器时区为 亚洲/上海

通过sql文件初始化数据库

docker exec -i mysql-master sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /data/db_backup.sql

3.从节点主机操作

创建持久化目录,并赋予权限

mkdir -p /data/mysql
chmod 777 /data/mysql

创建从节点

docker run -d --name mysql-slave \
  --restart always \
  -p 3306:3306 \
  -e MYSQL_REPLICATION_MODE=slave \
  -e MYSQL_REPLICATION_USER=vvrepl \
  -e MYSQL_REPLICATION_PASSWORD=vvrepl \
  -e MYSQL_MASTER_HOST=192.168.7.101 \
  -e MYSQL_MASTER_ROOT_PASSWORD=admin \
  -e MYSQL_MASTER_PORT_NUMBER=3306 \
  -v /data/mysql:/bitnami/mysql/data \
  -e TZ=Asia/Shanghai \
  bitnami/mysql:5.7.30
这篇关于docker实现mysql主从复制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!