主库: docker run -p 3307:3306 --name master_mysql -e MYSQL_ROOT_PASSWORD=123456 -d c20987f18b13
从库: docker run -p 3308:3306 --name slave_mysql -e MYSQL_ROOT_PASSWORD=123456 -d c20987f18b13
[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键),同步的日志路径及文件名,一定注意这个目录要是 MySQL 有权限写入的
log-bin=mysql-bin
## 可选要同步的数据库名,不配置此参数代表所有的库
#binlog-do-db=
[mysqld]
server-id=101
log-bin=mysql-slave-binlog
#relay_log配置中继日志
relay_log=mysql-relay-bin
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123';
FLUSH PRIVILEGES;
#出错使用下面命令在执行
ALTER USER ‘slave’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123’;
FLUSH PRIVILEGES;
show master status;
docker inspect --format='{{.NetworkSettings.IPAddress}} 容器ID
change master to master_host='172.17.0.4', master_user='slave', master_password='123', master_port=3306, master_log_file='mysqle-binlog.000001', master_log_pos= 154, master_connect_retry=30;
#执行完上一步 在刷新一下
flush privileges;
这里配置了主库的host地址 和用户名密码 端口号以及binlog日志文件 备份的节点
start slave;
show slave status \G
主要这两个配置都为yes证明配置成功
注意: 如果这两个有一个不为 YES ,表示主从环境搭建失败,此时可以阅读日志,查看出错的原因,再具体问题具体解决