搭建基于Docker的Mysql主从复制

目录

一、启动主服务器二进制日志配置

1. 进入主mysql容器

2. 进入mysql配置

3. 编辑my.cnf

4. 重启mysql服务及容器

5. 主服务器创建同步用户

二、启动从服务器二进制日志配置

三、链接主从服务器

1. 查看主服务器的主从配置

2. 查看docker容器的IP地址

3. 从服务器设置主机

4. 查看从服务器设置状态

四、验证主从复制

五、参考资料


一、启动主服务器二进制日志配置

1. 进入主mysql容器

docker exec -it ede3d91061f0 /bin/bash

2. 进入mysql配置

cd /etc/mysql,编辑my.cnf

 

3. 编辑my.cnf

命令:vim my.cnf

配置:server-id:服务ID(同一局域网内唯一)

           log-bin: 开启二进制日志文件

4. 重启mysql服务及容器

重启mysql服务:service mysql restart

重启容器:docker start 容器名称

5. 主服务器创建同步用户

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

二、启动从服务器二进制日志配置

见第一节相关,修改从服务器my.cnf并重启服务及容器。

server-id=101

log-bin=mysql-slave-bin

relay_log=edu-mysql-relay-bin

三、链接主从服务器

1. 查看主服务器的主从配置

show master status;

2. 查看docker容器的IP地址

docker inspect 容器名称

3. 从服务器设置主机

change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=154, master_connect_retry=30;

配置参数:

master_host :Master的地址,指的是容器的独立IP

master_port:Master的端口号,指的是容器的端口号

master_user:用于数据同步的用户

master_password:用于同步的用户密码

master_log_file:指定Slave从哪个日志文件开始复制数据,即主服务器File值

master_log_pos:从哪个 Position 开始读,即主服务器Position值

master_connect_retry:重试的时间间隔,单位是秒,默认是60秒

4. 查看从服务器设置状态

show slave status;

// 开启主从复制过程

start slave;

注意:Slave_IO_Running、Slave_SQL_Running都是No,说明没有开启主从复制过程。

四、验证主从复制

简单验证:主库建表,查看从库是否有表

五、参考资料

基于Docker的Mysql主从复制搭建 - CoderFocus - 博客园


版权声明:本文为m0_37543627原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。