面试被问到主从复制的主和从之间的数据不一致的原因,以及解决方法,当时没答出来,一是确实没有思考过这个问题,二来也有些因为紧张,没有想到。后来再次回想自己所学习的主复制的过程,应该有这几个原因:
解决的方法:
关闭防火墙和selinux
service firewalld stop
systemctl disable firewalld.service
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
再进行一次数据同步
# 进入主库,进行锁表,防止数据写入
mysql> flush tables with read lock;
# 备份主服务器上的数据
mysqldump -uroot -p --all-databases > backup.sql
# scp backup.sql root@xxx.xxx.xxx.xxx:~
#在从服务器上导入数据
mysql -uroot -p < /root/backup.sql
网络的问题。。。
数据量太大,可以配置负载均衡,如配置读写分离。
查了一下资料,主从复制不一致的原因还有可能是以下的原因:
从库写入
主从复制过程中主库异常宕机
主库的max_allowed_packet参数比从库大,一个较大的SQL语句在从库上无法执行
主数据库版本高于从数据库
解决方案:低版本做主库,高版本做从库
原文:https://www.cnblogs.com/CharrammaBlog/p/13641369.html