一、拉取mysql镜像
docker pull mysql
二、创建容器
# 主库
docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql
# 从库
docker run -itd -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave mysql
三、配置主库
[mysqld]## 同一局域网内注意要唯一server-id=100## 开启二进制日志功能,可以随便取(关键)log-bin=mysql-bin
四、配置从库
[mysqld] ## 设置server_id,注意要唯一 server-id=101 ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用 log-bin=mysql-slave-bin ## relay_log配置中继日志 relay_log=edu-mysql-relay-bin
配置完成之后重启mysql
docker restart mysql-masterdocker restart mysql-slave
五、在主库创建用户并授权,允许从库服务连接主库的服务
CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; ALTER USER 'slave'@'%' identified with mysql_native_password by '123456';
flush privileges;
六、配置主从同步
# 查主库中询File和Position
show master status;
# 在从库中设置主库信息
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= 784, master_connect_retry=30;
flush privileges;
七、启动主从
# 在从库中执行
start slave;# 查看状态
show slave status \G
出现双yes则同步正常