docker搭建mysql主从复制

在这里插入图片描述

1. 基础环境

  • 环境
名称描述
CentOS 7.6Linux操作系统版本
docker 20.10.5docker版本
mysql 8.0.29mysql镜像版本
  • 节点
节点名称读写/主从地址端口
master读节点/主节点192.168.1.6:3306
slave1写节点/从节点192.168.1.6:3307
slave2写节点/从节点192.168.1.6:3308

2. 主节点

  • 使用docker拉取mysql数据库的8.0.29版本镜像文件
[root@zhouwei ~]# docker pull mysql:8.0.29
  • 通过镜像构建主节点,端口3306,并映射配置文件至宿主机,容器名称为mysql-master,root用户密码为root
[root@zhouwei ~]# docker run -d -p 3306:3306 -v /mysql/master/conf:/etc/mysql/conf.d -v /mysql/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql-master mysql:8.0.29
  • 创建主节点配置文件
[root@zhouwei ~]# vim /mysql/master/conf/my.cn

内容如下:

[mysqld]
server-id=1
binlog_format=STATEMENT

  • 重启容器
[root@zhouwei ~]# docker restart mysql-master
  • root用户开启远程连接
# step1:进入容器内部
[root@zhouwei ~]# docker exec -it mysql-master env LANG=C.UTF-8 /bin/bash

# step2:登录mysql服务,账号root 密码root
bash-4.4# mysql -uroot -p

# step3:开启远程连接
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root';

2. 从节点

  • 通过镜像构建从节点1,端口3307,并映射配置文件至宿主机,容器名称为mysql-slave1,root用户密码为root
[root@zhouwei ~]# docker run -d -p 3307:3306 -v /mysql/slave1/conf:/etc/mysql/conf.d -v /mysql/slave1/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql-slave1 mysql:8.0.29
  • 创建主节点配置文件
[root@zhouwei ~]# vim /mysql/slave1/conf/my.cn

内容如下:

[mysqld]
server-id=2

  • 重启容器
[root@zhouwei ~]# docker restart mysql-slave1
  • 类似主节点开启远程连接
  • 同理在3308端口配置从节点2

3. 配置主从

  • 使用root用户登录主节点创建用户
-- 创建用户
CREATE USER 'slave'@'%';
-- 设置密码
ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'slave';
-- 赋予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
  • 查看主节点状态
SHOW MASTER STATUS;

在这里插入图片描述

  • 使用root用户登录从节点开启复制线程
CHANGE MASTER TO MASTER_HOST = '192.168.1.6',
MASTER_USER = 'slave', 
MASTER_PASSWORD = 'slave', 
MASTER_PORT = 3306, 
MASTER_LOG_FILE = 'binlog.000003',
MASTER_LOG_POS = 1427;

START SLAVE;

SHOW SLAVE STATUS;

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值