主容器配置
第一步
新建Master配置文件 /usr/local/mysql/master/my.cnf,内容如下:
[mysqld]
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
第二步
启动mysql容器
docker run --name master -p 3306:3306
-v /usr/local/mysql/master/my.cnf:/etc/mysql/conf.d/master.cnf
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.19
第三步
进入容器查看主容器的同步状态信息
show master status;
从容器配置
第一步
新建Slave配置文件 /usr/local/mysql/slave/my.cnf 内容如下:
[mysqld]
log-bin=mysql-bin
server-id=2
第二步
启动mysql容器
docker run --name slave -p 3306:3306
-v /usr/local/mysql/slave/my.cnf:/etc/mysql/conf.d/slave.cnf
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.19
第三步
进入容器修改配置主从关系关联
change master to master_host='192.168.147.133',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000003',master_log_pos=0; //与主容器同步状态一致,但是日志偏移量数值必须为0
第四步
启动同步进程
start slave
第五步
查询启动状态,两个yes代表成功
show slave status\G
附录
MySQL镜像文件本地拷贝
第一步
安装lrzsz
yum -y install lrzsz
第二步
上传
rz
MySQL主从复制
模式
主要模式共有三种,分别是异步模式、半同步模式以及全同步模式。MySQL主从复制模式默认是异步模式。MySQL 主从复制有三种方式:基于SQL语句的复制(statement-based replication,SBR),基于行的复制(row-based replication,RBR),混合模式复制(mixed-based replication,MBR)。对应的binlog文件的格式也有三种:STATEMENT,ROW,MIXED。