Master(主):
docker run -p 3339:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
Slave(从):
docker run -p 3340:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker exec -it mysql-master /bin/bash
docker exec -it mysql-slave /bin/bash
1.cd /etc/mysql
2.apt-get update
3.apt-get install vim
4.vi my.cnf
[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
- service mysql restart完成重启
docker start mysql-master
docker start mysql-slave
6.主执行(从不执行)
CREATE USER ‘slave’@’%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@’%’;
7.Slave和配置Master(主)一样,在Slave配置文件my.cnf中添加如下配置:
[mysqld]
##设置server_id,注意要唯一
server-id=101
##开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
##relay_log配置中继日志
relay_log=edu-mysql-relay-bin
8.在Master进入mysql,执行show master status;
File和Position字段的值后面将会用到,在后面的操作完成之前,需要保证Master库不能做任何操作,
9.查询容器ip:docker inspect --format=’{{.NetworkSettings.IPAddress}}’ 容器名称|容器id
docker inspect mysql-master
docker inspect --format=’{{.NetworkSettings.IPAddress}}’ mysql-master
10.在Slave 中进入 mysql,执行
change master to master_host=‘172.17.0.3’, master_user=‘slave’, master_password=‘123456’, master_port=3306, master_log_file=‘mysql-bin.000001’, master_log_pos= 617, master_connect_retry=30;
11.查看主从同步状态:在Slave 中的mysql终端执行 show slave status \G;
12.使用 start slave;
再次:show slave status \G;