博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

windows 系统 开启 mysql binlog 变更数据后 根据日志 寻找变更前的数据

查看 binlog 日志是否开启:

show variables like '%log_bin%';

 找到 mysql 配置文件:

C:\Program Files\MySQL\MySQL Server 5.5\my.ini 或在
C:\ProgramData\MySQL\MySQL Server 5.5\my.ini

 用记事本打开,

 在对应位置  [mysqld]下,添加:

[mysqld]
#开启binlog模式
log-bin=mysql-bin binlog-format=ROW server-id=1

如:

 或

 保存配置文件。

 重启 mysql 服务:

 记得,

 使用管理员权限运行:

 查看功能是否开启:

show variables like '%log_bin%';

 log_bin = ON 

然后去变更表数据,此后才会生成 binlog 日志:

update t_punch set name='张三' where id=280;

查看 binlog 事件:

show binlog events in 'mysql-bin.000001';

 找到对应回溯事件的 commit 注释 /* xid = 72 */

上一个事件:

 

 将 binlog 转回 sql 文件,寻找变更前的数据:

c:\ProgramData\MySQL\MySQL Server 5.5\data>
mysqlbinlog --no-defaults -v --base64-output=decode-rows mysql-bin.000001  > 20220807.sql

 记事本打开 20220807.sql ,文件头部:

 

根据对应 commit 注释 /* xid =72 */ ,  搜索 Xid = 72

 打码处即是变更前的数据。

posted @ 2022-08-07 20:06  CHANG_09  阅读(374)  评论(0)    收藏  举报