Docker MySQL 主从复制与创建用户
在当今的云计算时代,Docker 容器技术已经成为一种流行的应用部署方式。MySQL 是一个广泛使用的开源关系数据库管理系统。本文将介绍如何在 Docker 中配置 MySQL 主从复制,并创建用户。
一、环境准备
首先,确保你的系统中安装了 Docker。可以通过以下命令来安装 Docker:
curl -fsSL -o get-docker.sh
sh get-docker.sh
二、创建 MySQL 容器
接下来,我们将创建两个 MySQL 容器,一个作为主服务器,另一个作为从服务器。
主服务器
docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
从服务器
docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
三、配置 MySQL 主从复制
在主服务器上,我们需要创建一个复制用户,并配置复制参数。
- 进入主服务器容器:
docker exec -it mysql-master bash
- 登录 MySQL:
mysql -uroot -p
- 创建复制用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'repl';
- 授予复制权限:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
- 获取主服务器的二进制日志文件和位置:
SHOW MASTER STATUS;
记录下 File
和 Position
的值。
- 退出 MySQL:
exit
- 退出容器:
exit
配置从服务器
- 进入从服务器容器:
docker exec -it mysql-slave bash
- 登录 MySQL:
mysql -uroot -p
- 配置从服务器复制主服务器:
CHANGE MASTER TO
MASTER_HOST='mysql-master',
MASTER_USER='repl',
MASTER_PASSWORD='repl',
MASTER_LOG_FILE='recorded_file_name',
MASTER_LOG_POS=recorded_position;
将 recorded_file_name
和 recorded_position
替换为之前在主服务器上获取的值。
- 启动复制:
START SLAVE;
- 检查复制状态:
SHOW SLAVE STATUS\G
如果 Slave_IO_Running
和 Slave_SQL_Running
都显示为 Yes
,则表示复制成功。
- 退出 MySQL 和容器。
四、饼状图与甘特图
以下是使用 Mermaid 语法生成的饼状图和甘特图示例。
饼状图
pie
title MySQL 主从复制配置步骤
"创建容器" : 25
"配置主服务器" : 25
"配置从服务器" : 25
"检查复制状态" : 25
甘特图
gantt
title MySQL 主从复制配置时间线
dateFormat YYYY-MM-DD
section 创建容器
创建主服务器容器 : done, des1, 2024-01-01,2024-01-02
创建从服务器容器 : done, des2, 2024-01-02,2024-01-03
section 配置主服务器
创建复制用户 : active, des3, after des1, 3d
授予复制权限 : des4, after des3, 1d
section 配置从服务器
配置从服务器复制主服务器 : des5, after des4, 2d
启动复制并检查状态 : des6, after des5, 1d
五、总结
通过本文的介绍,你应该已经了解了如何在 Docker 中配置 MySQL 主从复制,并创建用户。这个过程涉及到创建容器、配置主从服务器、创建用户和授予权限等步骤。通过使用饼状图和甘特图,我们可以更直观地了解整个配置过程和时间线。希望本文对你有所帮助。