背景:2019.05.05 正在悠哉悠哉的梦游,忽然开发说数据对不上,问我是不是线上升级服务时候把数据误删了,现在数据都没了(注意:数据没丢失,是表格字段值更新为了null,这老哥表述有点小问题)
解决思路:一脸懵逼,但是想有binlog日志,抱着试试的想法去把binglog日志拉取出来
1>通过开发确定哪条数据有问题
2>通过数据的更新时间从binlog日志里边拉取当时执行的SQL,然后发给开发群,看一下是谁代码里SQL的问题
读取binlog日志的命令行:
基于开始/结束时间:
查询2019-04-02 14:04:09到2019-04-02 14:06:50 数据库为XX的操作日志,输入如下命令将数据写入到一个备用的文件即可。
[[email protected] mysqlbin]# mysqlbinlog --no-defaults --database=XX--start-datetime="2019-04-02 14:04:09" --stop-datetime="2019-04-02 14:06:50" mysql-bin.000105 > /mydata/prod.log
查看提出来的日志:
[[email protected] mysqlbin]# less /mydata/prod.log
基于pos值,注:XX是库名,/mysql-bin.000001是二进制文件路径
[[email protected] ~]# mysqlbinlog --start-position=1111--stop-position=2222-d XX /mysql-bin.000001
原文地址:https://www.cnblogs.com/byfboke/p/10814733.html