MySQL 主从复制搭建

MySQL 主从复制搭建手册(使用 Docker)

本手册提供了使用 Docker 搭建 MySQL 主从复制环境的详细步骤。适用于需要通过容器化方式快速部署和测试 MySQL 复制的场景。

前置准备

步骤 1: 创建所需文件夹

在宿主机上创建以下三个文件夹,用于存放 MySQL 的配置文件、数据文件和日志文件:

  • 配置文件夹: /data/mydata/mysql/conf
  • 数据文件夹: /data/mydata/mysql/data
  • 日志文件夹: /data/mydata/mysql/log

步骤 2: 拷贝 MySQL 文件

  1. 启动一个临时的 MySQL 容器:
docker run --restart=always --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD='你的密码' -d mysql:8.0.19
  1. 从容器中拷贝 MySQL 的文件到宿主机指定的挂载目录:
docker cp mysql:/var/log/. /data/mydata/mysql/log # 拷贝日志文件
docker cp mysql:/var/lib/mysql/. /data/mydata/mysql/data # 拷贝数据文件
docker cp mysql:/etc/mysql/. /data/mydata/mysql/conf/ # 拷贝配置文件

步骤 3: 删除临时容器

停止并删除用于拷贝文件的临时容器:

docker stop mysql
docker rm mysql

主服务器配置

步骤 1: 修改配置文件

直接编辑 /data/mydata/mysql/conf/my.cnf 文件,配置如下

[mysqld]
server-id = 1
log-bin = mysql-bin

步骤 2: 启动主服务器容器

使用以下命令启动主服务器容器,并挂载配置文件、数据目录和日志目录:

docker run --restart=always --name mysql-master -v /data/mydata/mysql/conf:/etc/mysql -v /data/mydata/mysql/data:/var/lib/mysql -v /data/mydata/mysql/log:/var/log -p 3306:3306 -e MYSQL_ROOT_PASSWORD='123456' -d mysql:8.0.19

步骤 3: 配置主服务器

  1. 登录到 MySQL 容器:
docker exec -it mysql-master mysql -u root -p
  1. 创建复制用户并授权:
CREATE USER 'replica'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;
  1. 查看主服务器状态以获取复制所需信息:
SHOW MASTER STATUS;

记录下 FilePosition 的值。

从服务器配置

步骤 1: 启动从服务器容器

使用与主服务器相似的命令启动从服务器容器,但确保 server-id 在配置文件中设置为不同的值(如 2)。

docker run --restart=always --name mysql-slave -v /data/mydata/mysql/conf:/etc/mysql -v /data/mydata/mysql/data:/var/lib/mysql -v /data/mydata/mysql/log:/var/log -p 3307:3306 -e MYSQL_ROOT_PASSWORD='123456' -d mysql:8.0.19

步骤 2: 配置从服务器

  1. 登录到 MySQL 容器:
docker exec -it mysql-slave mysql -u root -p
  1. 配置复制:
CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='记录的File值', MASTER_LOG_POS=记录的Position值;
  1. 启动复制进程:
START SLAVE;
  1. 检查从服务器状态:
SHOW SLAVE STATUS\G

确认 Slave_IO_Running 和 Slave_SQL_Running 都是 Yes。

完成配置
至此,您已成功配置 MySQL 的主从复制环境。务必确保网络配置允许主从服务器之间的通信

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值