某年某月某天,线上主从由于误操作,主从数据不一致了,以下方法将演示在线做主从的方法:
如果发现主从数据不一致,先将连接从库的在代码上修改成直接连接主库,要等待从库没有流量过来以后,再做主从数据同步
1.在从库上,重置从库的slave配置:
STOP SLAVE
RESET SLAVE; 或者 reset slave all;
2.在主库上执行数据库全库备份:
mysqldump --master-data=2 --single-transaction --all-databases --triggers --routines --events > all_db.sql
3.将主库的备份文件传输到从库
scp ./all_db.sql 10.1.1.215:/data/dump/
4.在从库上进行全库恢复:
mysql <all_db.sql
在全备份的文件中获取master_log_file和master_log_pos的值:
--
-- Position to start replication or point-in-time recovery from
--
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000233', MASTER_LOG_POS=364841746;
5.执行主从复制配置:
change master to master_host='10.1.1.214',master_user='slave',master_password='Hexin_slave_2020123.',master_port=3306,master_log_file='mysql-bin.000233',master_log_pos=364841746;
6.开启从库,查看主从同步情况:
start slave;
show slave status\G;
7.验证主从数据是否一致