mysqlbinlog基本用法

基本命令格式

复制代码
mysqlbinlog [options] /path/to/mysql-bin.00000X
  • /path/to/mysql-bin.00000X → 二进制日志文件路径,可以多个。
  • 输出默认是 SQL,可以通过重定向 > 保存到文件。
  • 输出 SQL 可以直接在 MySQL 执行回放。

常用参数

|------------------------------------------|---------------------|-----------------|
| 参数 | 说明 | 典型场景 |
| --start-datetime="YYYY-MM-DD HH:MM:SS" | 从指定时间开始解析日志 | 回放某个时间之后的操作 |
| --stop-datetime="YYYY-MM-DD HH:MM:SS" | 到指定时间结束解析日志 | 回放到某个时间之前的操作 |
| --start-position=N | 从二进制日志的第 N 字节位置开始解析 | 精确回放某条事件 |
| --stop-position=N | 到第 N 字节位置停止解析 | 精确截取事件 |
| -vv / --verbose | 显示详细信息,包括 ROW 格式数据 | 分析 ROW 格式日志 |
| --base64-output=decode-rows | 解码 ROW 格式的事件为可读 SQL | 用于增量恢复 ROW 格式数据 |
| --no-defaults | 不读取 my.cnf 配置 | 避免本地配置影响 |
| --database=dbname | 只解析指定数据库的事件 | 精准恢复单库 |
| --rewrite-db=from_db->to_db | 将数据库名重写为另一个 | 恢复到另一个库 |
| --stop-never | 持续输出新的二进制日志 | 用于实时监控 binlog |


回放日志到 MySQL

方法 A:按时间区间回放

复制代码
mysqlbinlog --no-defaults \
  --start-datetime="2026-01-04 10:00:00" \
  --stop-datetime="2026-01-04 13:59:59" \
  /data/mysql/binlog/mysql-bin.000005 \
  > /mysqlbak/recover.sql

mysql -uroot -pPWnb-0512 < /mysqlbak/recover.sql

注意:SQL 会按日志原样回放,不会自动反转 DELETE/UPDATE


方法 B:按位置回放

复制代码
mysqlbinlog --no-defaults \
  --start-position=4162 --stop-position=4218 \
  --base64-output=decode-rows -vv \
  /data/mysql/binlog/mysql-bin.000005 > /mysqlbak/recover_delete.sql

mysql -uroot -pPWnb-0512 < /mysqlbak/recover_delete.sql
  • 精确回放某个操作。
  • ROW 格式日志需要 -vv --base64-output=decode-rows 才能解析成可读 SQL。

注意事项

  1. mysqlbinlog 不会自动反转操作
  • DELETE 还是 DELETE,UPDATE 还是 UPDATE。
  • 如果要恢复误删,需要用 -vv --base64-output=decode-rows 提取行数据,然后生成 INSERT。
  1. ROW 格式日志必须解码
  • --base64-output=decode-rows -vv 是解析 ROW 格式增量操作的关键。
  1. 回放顺序很重要
  • 多个 binlog 文件要按顺序回放,否则可能出现外键约束或事务顺序问题。
  1. 增量恢复结合全量备份
  • 建议先恢复全量备份,再用 binlog 回放到指定时间点。
相关推荐
乾元6 小时前
终端安全(EDR):用深度学习识别未知勒索软件
运维·人工智能·网络协议·安全·网络安全·自动化·安全架构
wbs_scy6 小时前
Linux 进阶指令实操指南:文件查看、时间管理、搜索压缩全场景覆盖(附高频案例)
linux·运维·服务器
安科瑞刘鸿鹏176 小时前
高速路灯故障难定位?用 ASL600 实现精确单灯监测与维护预警
运维·网络·物联网·安全
馨谙6 小时前
Ansible 事实(Facts)全面指南:自动化运维中的主机信息管理
运维·ansible
Lethehong6 小时前
实测可用|一文搞定OpenClaw部署,免费kimi-k2.5+飞书远程,新手也能秒上手
linux·运维·服务器·玩转openclaw·云端创意实践
馨谙6 小时前
Ansible处理程序完全指南:实现智能的任务触发机制
运维·ansible
承渊政道6 小时前
Linux系统学习【Linux基础开发工具】
linux·运维·笔记·学习·centos·编辑器
艾莉丝努力练剑6 小时前
【Linux:文件】基础IO
linux·运维·c语言·c++·人工智能·io·文件
_OP_CHEN6 小时前
【Linux系统编程】(二十七)手撕动静态库原理与实战:从底层逻辑到代码落地
linux·操作系统·动态库·静态库·c/c++·库的原理与制作
南烟斋..6 小时前
Linux设备驱动开发完全指南:从启动流程到Platform驱动模型
linux·驱动开发·uboot