mysql查看binlog, 追溯历史

有时候我们会通过navicat手动修改数据, 但是发现修改错了, 但是有记不清原始数据了, 怎么办

为了避免这种情况可以通过以下方式

方案1.  修改的时候,加上原始数据作为条件, 这样日志就会记录原始的sql语句

image

 

 方案2. 修改binlog的模式为ROW模式, 这种模式详细的记录了修改前后的值

 下面就是binlog文件

image

 通过宝塔可以看到binlog模式

image

 默认模式是 MIXED 会根据当前语句的情况选择特定的模式记录日志

image

 ROW模式记录了修改前后的值

image

 我们可以通过以下命令看到特定时间段的日志 (通过mysqlbinlog, 解析查看27号18:10 到27号18:20的日记信息)

/www/server/mysql/bin/mysqlbinlog \
--base64-output=DECODE-ROWS \
-v \
--start-datetime="2025-11-27 18:10:00" \
--stop-datetime="2025-11-27 18:20:00" \
mysql-bin.000005

也可以通过以下命令, 把查询结果导出

/www/server/mysql/bin/mysqlbinlog \
--start-datetime="2025-11-27 13:00:00" \
--stop-datetime="2025-11-27 15:00:00" \
mysql-bin.000005 > /tmp/check_recovery.sql

 

posted @ 2025-11-27 18:49  发奋图钱小菜鸡  阅读(3)  评论(0)    收藏  举报