1.准备两个虚拟机,已安装docker和mysql镜像
192.168.177.88 # master
192.168.177.89 # slave
2.在两个虚拟机上分别创建mysql容器
docker run --name mysql3307 -p 3307:3306 --privileged=true -ti -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=study -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -v /home/mysql/docker-data/3307/conf:/etc/mysql/conf.d -v /home/mysql/docker-data/3307/data/:/var/lib/mysql -v /home/mysql/docker-data/3307/logs/:/var/log/mysql -d mysql:5.7
3.master my.cnf配置
# vi /home/mysql/docker-data/3307/conf/my.cnf
[mysqld]
server-id=883307
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=1
lower_case_table_names=1
#binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库
#binlog-ignore-db=mysql //要忽略的数据库
4.slave my.cnf配置
# vi /home/mysql/docker-data/3307/conf/my.cnf
[mysqld]
server-id=893307
log-bin=mysql-bin
auto-increment-increment=2
auto-increment-offset=2
lower_case_table_names=1
#replicate-do-db = wang #需要同步的数据库
#binlog-ignore-db = mysql
#binlog-ignore-db = information_schema
5.重启两个虚拟机的mysql
docker restart mysql3307
6.设置master
GRANT REPLICATION SLAVE,FILE,REPLICATION CLIENT ON *.* TO 'repluser'@'%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
show master status;
7.设置slave
change master to master_host='192.168.177.88',master_port=3307,master_user='repluser',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=936;
start slave;
show slave status;
8.设置成功,测试效果
master 创建t1表,并插入一条数据
insert into t1(name) values ('aa');
查看slave,表和数据同步成功
select * from t1;