目录
一、启动主服务器二进制日志配置
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,说明没有开启主从复制过程。


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