1.环境#
主机:vhost4, vhost5, vhost6
系统:CentOS7
vhost4: MySQL.slave
vhost5: MySQL.master
vhost6: MySQL.slave
MySQL: v5.7.36
2.配置#
2.1 (一个)master配置#
2.1.1 my.cnf配置#
cat /etc/my.cnf
1 | ...略 |
2.1.2 确保MySQL的 skip_networking 变量是OFF的#
1 | SHOW VARIABLES LIKE '%skip_networking%'; |
2.1.3 重启MySQL服务#
1 | systemctl restart mysqld |
2.1.4 在master上创建用于复制的用户账号#
1 | CREATE USER 'repl'@'%' IDENTIFIED BY '密码'; |
2.1.5 获取master上binary log的坐标#
1 | FLUSH TABLES WITH READ LOCK; # 锁定只读 |
2.1.6 同步现有数据,从master上导出数据#
1 | mysqldump -uroot -p --all-databases --master-data > dbdump.db |
2.1.7 解除锁定#
在master上执行UNLOCK TABLES;(对应上面的FLUSH TABLES WITH READ LOCK;)
2.2 (每个)slave配置#
2.2.1 replica设置(一般不需要开启binary log)#
cat /etc/my.cnf
两个slave的server-id分别配置为2和3
1 | ...略 |
2.2.2 在replica上配置master#
MASTER_LOG_FILE和MASTER_LOG_POST参数为master上binary log的坐标
1 | CHANGE MASTER TO |
2.2.3 启动slave开始复制#
1.导入master的数据
2.start slave
3.资料#
- 同步部分库和(或)表 - https://dev.mysql.com/doc/mysql-replication-excerpt/5.7/en/replication-options-replica.html
- 同步部分库和(或)表 - https://blog.csdn.net/weixin_39276658/article/details/80763860
- 多图文,详细介绍mysql各个集群方案 - https://www.cnblogs.com/lgx211/p/12456859.html
- MySQL Replication 主从复制全方位解决方案 - https://www.cnblogs.com/clsn/p/8150036.html
- 官方文档 - https://dev.mysql.com/doc/mysql-replication-excerpt/5.7/en/