背景
服务器强制重启,导致MySQL主从数据库出现数据不一致问题,主从数据库数据相差较大,无法完成数据同步,出现报错。
因此,需要进行主从同步重置操作。
1. 首先对从库进行操作
- 1)进入MySQL 命令行管理界面
1 | mysql -uroot -p |
- 2)停止slave
1 | stop slave; |
- 3)重置从库
1 | reset slave all; |
- 4)清除已同步数据库
1 2 | # drop database `***`; 如:drop database 'eroom' ; |
2. 对主库进行操作
- 1)重置主库同步设置
1 | RESET MASTER; |
- 2)锁定主库,只能读
1 | FLUSH TABLES WITH READ LOCK; |
- 3)退出MySQL控制台,执行导出全部mysql数据
1 2 | # -h 当前主机ip地址 -p MySQL端口 mysqldump -uroot -p --host=192.168.0.116 --port=3306 --all-databases > /root/master-dump .sql |
4)解锁主库
1 | UNLOCK TABLES; |
3. 从库导入主库导出的数据
- 1)导入全部数据
1 2 | # -h 当前主机ip地址 -p MySQL端口 mysql -uroot -h 192.168.0.113 -P 3306 -p |
- 2)修改从库同步设置
1 2 3 | 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 数据
1 | show master status; |
- 4)开启从库slave
1 | start slave; |
- 5)查看slave状态
1 | show slave statusG; |
如下图所示,则表示配置成功。
附录
1.设置主从配置:
2.添加数据同步账户:
1 | grant replication slave on *.* to 'root' @ '%' identified by '123456' ; |
3.重启mysql
1 | mysql restart |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。