思路一. 删掉从库数据, 重新搭建主从
备份主库数据
./bin/mysqldump -uroot -proot --master-data=2 --lock-all-tables -R --triggers -A > /usr/local/mysql/all.sql
- 其中--master-data=2代表备份时刻记录master的Binlog位置和Position
- --lock-all-tables 意思是锁表
- -R意思是备份存储过程和函数,
- --triggres的意思是备份触发器,
- -A代表备份所有的库。
- 更多信息请自行mysqldump --help查看。
关于锁表, 参照:
https://blog.csdn.net/linuxheik/article/details/71480882
从库停止复制
stop slave;
reset slave all;
恢复数据, 将all.sql传到从库服务器上
# 查找binlog位置点
head -1000 all.sql | grep 'CHANGE MASTER TO';
#-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026', MASTER_LOG_POS=314;
source all.sql
# 将auto_position设置0
change master to master_auto_position=0
# 开启复制
CHANGE MASTER TO MASTER_HOST='10.101.67.13', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000026', MASTER_LOG_POS=314, MASTER_USER='repl', MASTER_PASSWORD='repl';
# 查看结果
show slave status\G;