通过 MySQL的 binlog 查找问题根源

问题背景: 我家运营哥哥向我反映了一个看起来很反常的数据显示问题。简单来说就是,用户因捣乱被封号(几个小时后会自动解封)。奇怪的是,用户方已经自动解封,但是管理平台仍然显示 封号 状态。
怀疑1: 解封sql 执行失败, 经过日志比对,解封sql 成功执行。
怀疑2: 被后执行的 sql 覆盖了数据, 查代码……,好多,还是算了,去查binlog 吧。
找到binlog 的位置

vi /etc/my.cnf

在这里插入图片描述
去到log-bin位置,找到今天所在的binlog 日志文件。然后

vi  日志文件

然后轻轻地敲下回车键。
在这里插入图片描述

哇~,我错了,我再也不敢了

还是找更加专业的工具吧, 有个工具叫 mysqlbinlog

whereis mysqlbinlog

在这里插入图片描述
那直接用就行了

mysqlbinlog  日志文件  > temp.log
vi temp.log 

查看一番之后,问题实锤,确实是新数据被就数据覆盖了。
问题原因:
       主流程:数据第一次加载的到对象A.
       进入分支进行判断,问题在这里,数据第二次加载得到对象B,数据更新(这里更新的B 和 A 不是同一个对象,数据异常了),分支结束。
       主流程各种操作之后,进行数据更新(成功把对象B更新的数据盖掉)。

不说了,我去买豆腐了……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值