前言: 大年初五,原计划撸一遍数据库监控的知识点,查看数据库时发现某一从节点数据不一致
1.查看节点状态 mysqld_multi report;
2. 启动 所有节点 mysqld_multi start;
3.mysql -S /tmp/mysql.sock1 -p'123456'; # 依次登陆不同实例查看各节点测试数据。
mysqldump备份主节点内表信息,视个人情况备份(仅供参考)
mysqldump -uroot -p --add-drop-database -S /tmp/mysql.sock1 --single-transaction test t1 -R > /opt/test_t1.sql;
4.解决方法,采用手动重建。(一个字:把握!)
进入数据不一致的从节点:
stop slave;
reset slave;
delete from 表; #清空数据不一致的表数据
source /opt/test_t1.sql;# 导入从主节点备份的数据
重新配置主从连接
CHANGE MASTER TO MASTER_HOST = '127.0.0.1', MASTER_USER = 'root', MASTER_PASSWORD = '123456', MASTER_PORT = 3306,MASTER_LOG_FILE='mysql-bin.000005';
sart slave;
show slave status\G;
----------------------------如果下面俩个都是Running ------------------就可以了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Over ~
reset slave: 用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件,将SLAVE忘记主从复制关系的位置信息,删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。
reset master: 删除所有的binglog日志文件并,将日志索引文件清空,重新开始所有新的日志文件。用于第一次进行搭建主从库时,进行主库binlog初始化工作。如果从库正常访问,切记不要这么干!