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
标签:主从复制,mysql,REPLICATION,MYSQL,docker,bitnami,data 来源: https://www.cnblogs.com/ww1984/p/15578651.html