Docker部署MySQL主从复制架构

文章目录

      • 1、准备工作
      • 2、下拉镜像,启动容器
      • 3、编辑 MySQL 主节点配置
      • 4、编辑 MySQL 从节点配置
      • 5、通过 Navicat 配置主节点
      • 6、通过 Navicat 配置从节点
      • 7、最终测试

1、准备工作

  • 云服务器(虚拟机也可以)
  • 安装Docker,参考该文章第1小节:https://blog.csdn.net/weixin_46594796/article/details/122750009
  • 开放安全组(3306、3307),确保Navicat可以正常连接
    Docker部署MySQL主从复制架构_第1张图片

2、下拉镜像,启动容器

首先,下拉MySQL镜像,版本为5.7:

docker pull mysql:5.7

根据MySQL,启动两个MySQL容器(一主一从):

# 主节点
docker run -d -p 3306:3306 -v /home/mysql/node-1/config:/etc/mysql/ -v/home/mysql/node-1/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456  --name mysql01 mysql:5.7

# 从节点
docker run -d -p 3307:3306 -v /home/mysql/node-2/config:/etc/mysql/ -v/home/mysql/node-2/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 mysql:5.7

3、编辑 MySQL 主节点配置

进入配置目录,创建配置文件:

# 进入配置目录
cd /home/mysql/node-1/config/

# 创建配置文件
vim my.cnf

将下方配置内容复制到 my.cnf 中:

[mysqld]
# 主服务器ID(与从服务器不能相同)
server-id=1
# 启用binlog
log-bin=mysql-bin
# 忽略数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
# 数据库名称(主从复制)
binlog-do-db=test
# binlog格式
binlog_format=STATEMENT

4、编辑 MySQL 从节点配置

进入配置目录,创建配置文件:

# 进入配置目录
cd /home/mysql/node-2/config/

# 创建配置文件
vim my.cnf

将下方配置内容复制到 my.cnf 中:

[mysqld]
# 从服务器唯一ID
server-id=2
# 启用relaylog中继日志
relay-log=mysql-relay

重启两台MySQL容器:

docker restart mysql01  mysql02	

5、通过 Navicat 配置主节点

接下来所有的命令通过Navicat执行即可

首先,通过Navicat连接MySQL主节点,端口号分别是3306:

Docker部署MySQL主从复制架构_第2张图片
为MySQL从节点授权,能够主从连接:

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

查询主节点状态:

show master status;

Docker部署MySQL主从复制架构_第3张图片

6、通过 Navicat 配置从节点

首先,通过Navicat连接MySQL从节点,端口号分别是3307:
Docker部署MySQL主从复制架构_第4张图片
执行命令,为从节点设置主从配置:

CHANGE MASTER TO MASTER_HOST='主机公网IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_PORT=3306, 
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=430;

启动从节点复制功能:

start slave;

查询从节点状态,其中Slave_IO_RunningSlave_SQL_Running是Yes,说明主从复制搭建成功!

show slave status;

Docker部署MySQL主从复制架构_第5张图片

7、最终测试

为主节点创建test数据库,从节点会自动同步:
Docker部署MySQL主从复制架构_第6张图片
为主节点创建user表,从节点会自动同步:
Docker部署MySQL主从复制架构_第7张图片
为主节点创建user表插入数据,从节点会自动同步:

Docker部署MySQL主从复制架构_第8张图片

你可能感兴趣的:(mysql,docker,架构,主从复制,java)