一、安装容器
--主库
docker run -p 33106:3306 --name mysql33106 \
-v /zensun/mydata/mysql33106/log:/var/log/mysql \
-v /zensun/mydata/mysql33106/data:/var/lib/mysql \
-v /zensun/mydata/mysql33106/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
--从库
docker run -p 33206:3306 --name mysql33206 \
-v /zensun/mydata/mysql33206/log:/var/log/mysql \
-v /zensun/mydata/mysql33206/data:/var/lib/mysql \
-v /zensun/mydata/mysql33206/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
二、修改配置文件
--主库配置文件配置
cd /zensun/mydata/mysql33106/conf
touch my.cnf
vim my.cnf
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=101
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能
log-bin=mall-mysql-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
#重启主库mysql
docker restart mysql33106
#创建同步数据的用户
CREATE USER 'slave' @'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE,
REPLICATION CLIENT ON *.* TO 'slave' @'%';
--从库配置文件配置
cd /zensun/mydata/mysql33206/conf
touch my.cnf
vim my.cnf
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=102
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
## slave设置为只读(具有super权限的用户除外)
read_only=1
docker restart mysql33206
三、查看主库的master状态
--进入主库连接
show master status;
查看 file position参数
四、配置从库参数 开启同步
CHANGE MASTER TO master_host = '192.168.69.112',
master_user = 'slave',
master_password = '123456',
master_port = 33106,
master_log_file = 'mall-mysql-bin.000001', --主库查看的file参数
master_log_pos = 154, --主库查看的position参数
master_connect_retry = 30;
##开启从库同步
start slave;
##查看同步状态
show slave status;
看到此参数 说明配置成功