mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案

先上Master库:使用show processlist; 命令查看下进程是否Sleep太多。
mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案
文章图片

使用show master status; 命令查看当前状态。
mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案
文章图片

使用show slave status; 命令查看某个slave当前状态
mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案
文章图片

从上面看到Slave_SQL_Runnnig状态为No,说明当前Slave未同步
mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案
文章图片

该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况
①使用stop slave; 命令停止同步②使用set globalsql_slave_skip_counter =1; 命令跳过一步错误,后面的数字可变
mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案
文章图片

使用start slave; 命令开启同步
mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案
文章图片

使用show slave status\G 命令查看当前状态
mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案
文章图片

如果显示Slave_IO_Running: Yes,Slave_SQL_Running: Yes,说明主从开始正常同步
主键冲突、表已存在等错误代码如1062,1032,1060等,可以在mysql主配置文件指定略过此类异常并继续下条sql同步,这样也可以避免很多主从同步的异常中断
使用slave-skip-errors= 1062,1032,1060命令忽略指定错误
使用servicemysqld restart命令重新启动mysql服务
使用用mysql>show slave status\G 查看当前状态:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
该方法适用于主从库数据相差较大,或者要求数据完全统一的情况
解决步骤如下:
1.先进入主库,使用命令flush tables with read lock; 进行锁表,防止数据写入
注意:该处是锁定为只读状态,语句不区分大小写
2.进行数据备份
使用mysqldump-uroot -p -hlocalhost > mysql.bak.sql把数据备份到mysql.bak.sql文件
这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失
3.查看master 状态
mysql> show master status;
4. 使用scp mysql.bak.sql root@192.168.128.101:/tmp/命令把mysql备份文件传到从库机器进行数据恢复
5.使用stop slave; 命令停止从库的状态
6.然后到从库执行mysql命令,导入数据备份mysql> source /tmp/mysql.bak.sql
7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项
change master to master_host = '192.168.128.100', master_user ='rsync', master_port=3306, master_password='', master_log_file ='mysqld-bin.', master_log_pos=3260;
8.重新开启从同步
mysql> stop slave;
9.查看同步状态
【mysql|mysql 主从同步不一致_MYSQL主从复制数据不一致解决方案】mysql> show slave status\G 查看:

    推荐阅读