Mysql主从同步如何重置
作者:Janson666
在MySQL数据库运维中,遇到主从数据库数据不一致时需要进行同步重置,本文介绍了主从同步重置的具体步骤:首先对从库操作,包括停止slave、重置从库;其次对主库进行操作,包括重置主库同步设置、锁定主库;最后从库导入主库数据
背景
服务器强制重启,导致MySQL主从数据库出现数据不一致问题,主从数据库数据相差较大,无法完成数据同步,出现报错。
因此,需要进行主从同步重置操作。
1. 首先对从库进行操作
- 1)进入MySQL 命令行管理界面
mysql -uroot -p
- 2)停止slave
stop slave;
- 3)重置从库
reset slave all;
- 4)清除已同步数据库
# drop database `***`; 如:drop database 'eroom';
2. 对主库进行操作
- 1)重置主库同步设置
RESET MASTER;
- 2)锁定主库,只能读
FLUSH TABLES WITH READ LOCK;
- 3)退出MySQL控制台,执行导出全部mysql数据
# -h 当前主机ip地址 -p MySQL端口 mysqldump -uroot -p --host=192.168.0.116 --port=3306 --all-databases >/root/master-dump.sql
4)解锁主库
UNLOCK TABLES;
3. 从库导入主库导出的数据
- 1)导入全部数据
# -h 当前主机ip地址 -p MySQL端口 mysql -uroot -h 192.168.0.113 -P 3306 -p < /root/master-dump.sql
- 2)修改从库同步设置
change master to master_host='主库ip(192.168.1.1)',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154; # master_log_file 如下图获取 # master_log_pos 如下图获取
- 3)获取master_log_file 和master_log_pos 数据
进入主库MySQL管理界面,执行一下命令,查看master_log_file 和master_log_pos 数据
show master status;
- 4)开启从库slave
start slave;
- 5)查看slave状态
show slave status\G;
如下图所示,则表示配置成功。
附录
1.设置主从配置:
2.添加数据同步账户:
grant replication slave on *.* to 'root'@'%' identified by '123456';
3.重启mysql
mysql restart
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。