mysql主从状态异常解决办法

今天发现新插入的一条数据,读取的时候无此数据,因为我这里做了读写分离,所以怀疑是从库的问题。

不知什么原因导致Mysql的主从数据库没有同步。

先上Master库:

在从数据库执行

问题分析:以上现象一方面原因是因为网络通信的问题也有可能是日志读取错误的问题。

解决办法:忽略错误后,继续同步。该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况。

到master机器登陆mysql:

记录master的bin的位置,例如:mysql> show mster status;

日志为mysql-bin.004661

因为刷新日志file的位置会+1,即File变成为:mysql-bin.004662

马上到slave执行

启动之后查看状态恢复

解决办法2

stop slave;

#表示跳过一步错误,后面的数字可变

之后再用mysql> show slave status\G  查看:

ok,现在主从同步状态正常了。。。

解决办法3

重新做主从,完全同步,该方法适用于主从库数据相差较大,或者要求数据完全统一的情况.

1.先进入主库,进行锁表,防止数据写入

使用命令:

注意:该处是锁定为只读状态,语句不区分大小写

2.进行数据备份

#把数据备份到mysql.bak.sql文件

这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者脚本,都比较方便,确保数据万无一失

3.查看master 状态

4.把mysql备份文件传到从库机器,进行数据恢复

#使用scp命令

5.停止从库的状态

6.然后到从库执行mysql命令,导入数据备份

7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项

8.重新开启从同步

9.查看同步状态

好了,同步完成啦。

原文地址:https://www.cnblogs.com/lonuve/p/11015907.html

时间: 2024-10-13 06:03:37

mysql主从状态异常解决办法的相关文章

Mysql主从(主从不同步解决办法,常见问题及解决办法,在线对mysql做主从复制)

一.主从不同步解决办法 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; 也正常. mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore

mysql主从同步异常原因及恢复syncnavigator

mysql数据库做主从复制,不仅可以为数据库的数据做实时备份,保证数据的完整性,还能做为读写分离,提升数据库的整体性能.但是,mysql主从复制经常会因为某些原因使主从数据同步出现异常.因此,下面介绍的是mysql主从同步异常的原因及恢复的方法. 这个问题是在部署主从复制的时候,可能会遇到的 回到顶部 Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL s

使用zabbix监控mysql主从状态

公司mysql架构为一主多从.在日常使用过程中我们经常会遇到主从不同步的情况,为了及时处理此问题现使用zabbix监控mysql主从状态并设置触发器,如有异常则发送邮件报警. 我们都知道使用命令"show slave status \G"可以查看mysql从的状态,下面用脚本方式检查其状态. 在mysql-slave中进入zabbix-agent目录创建脚本文件. cat mysql_slave_status.sh #!/bin/bash /usr/local/mysql/bin/my

如何实时检测mysql主从状态,并做邮件告警?

实时检测mysql主从状态,并做邮件告警 需求分析: 当我们做完主从后,主从成功的话,Slave_IO_Running和Slave_SQL_Running两个进程的状态就为yes,但是在做主从同步时也不排除,会发生一些意外的情况,所以我们需要写个脚本来实时检测Slave_IO_Running和Slave_SQL_Running的状态,一旦mysql主从状态出现了状况,就通过邮件发送告警,然后再做维护. 脚本思路: 定时检测mysql主从状态,说白的了就是通过脚本让系统去自我检测主从状态,如果是主

org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session异常解决办法

org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session异常解决办法 为什么还会说已经存在相同的session了呢.然后每次将项目重启后第一次编辑的时候问题不会触发,只有当第二次操作的时候才会出现这个问题. 解决办法:关闭session.好好检查操作完成后有没有关闭会话. org.hibernat

PHP多次调用Mysql存储过程报错解决办法

PHP多次调用Mysql数据库的存储过程会出现问题,主要问题为存储过程中执行多次SQL语句不能一一释放导致的,网上找了一些解决办法,比如使用 multi_query 然后一个一个释放,但是发现根本不适合我们的项目,我们使用CI框架写的,更多的是使用CI的数据库处理方法.所以只能另辟蹊径. 一次偶然,把Mysql链接方式改成了mysqli,两种不同的PHP连接mysql的扩展,官方在高版本中推荐使用mysqli,结果却奇迹般好了,使用Mysql长连接也行,天意么? PHP多次调用Mysql存储过程

linux中ERROR: The partition with /var/lib/mysql is too full!解决办法

今天在ubuntu上遇见这个问题.应该是我的第一分区太小了. 解决办法: [email protected]:/var$ cd /var [email protected]:/var$ rm -rf log 我们删除日志文件 [email protected]:/var$ /etc/init.d/mysql start 在开启mysql就正常了 linux中ERROR: The partition with /var/lib/mysql is too full!解决办法,布布扣,bubuko.c

android 自定义adapter和线程结合 + ListView中按钮滑动后状态丢失解决办法

adapter+线程 1.很多时候自定义adapter的数据都是来源于服务器的,所以在获取服务器的时候就需要异步获取,这里就需要开线程了(线程池)去获取服务器的数据了.但这样有的时候adapter的中没有数据. 如下面的代码: 这就是在initData中异步获取服务器的数据,然后实例化adatper,再将adapter赋给listView. 2.initData()中的代码是: 这里线程要睡眠5秒钟,是为了模仿网络的耗时操作 3.Handler: 在Handler中接收到数据后给list赋值后,

Android主线程不能访问网络异常解决办法

从两个方面说下这个问题: 1. 不让访问网络的原因 2. 解决该问题的办法 不让访问网络的原因: 由于对于网络状况的不可预见性,很有可能在网络访问的时候造成阻塞,那么这样一来我们的主线程UI线程 就会出现假死的现象,产生很不好的用户体验.所以,默认的情况下如果直接在主线程中访问就报出了这个异常,名字是NetworkOnMainThreadException 解决该问题的办法 1. 独立线程 2. 异步线程AsyncTask 3. StrictMode修改默认的策略 1) 独立线程的办法 启动一个