首页/数据/数据工程与 ETL 速查/mysqlbinlog:解析与导出 binlog
CDC 与同步53 条

mysqlbinlog:解析与导出 binlog

mysqlbinlog 把 binlog 文件解析成可读文本,用于事后恢复与问题定位。ROW 格式必须加 --base64-output=DECODE-ROWS -vv 才能看到伪 SQL;支持按时间、位点、库过滤,也能用 --read-from-remote-server 从运行中的实例拉取日志。

解析与导出

解析与导出
# 查看某时间段事件(ROW 格式解出伪 SQL)
mysqlbinlog --base64-output=DECODE-ROWS -vv --start-datetime="2026-10-11 00:00:00" /var/log/mysql/mysql-bin.000123 | less

# 导出指定位点区间
mysqlbinlog --start-position=1944 --stop-position=3200 mysql-bin.000123 > /tmp/seg.sql
mysql -uroot -p < /tmp/seg.sql
--database只输出指定库的事件
--start/stop-datetime按时间范围过滤
--start/stop-position按位点区间切段
远程读取--read-from-remote-server --host=... --user=...
回放导出的 SQL 前核对位点区间与已执行状态,避免重复执行同一批变更。

易错点

  • ROW 格式不加 --base64-output=DECODE-ROWS,只看到 base64 密文就以为文件损坏
  • 大文件整段回放前不切区间、不核对位点,重复执行造成数据错乱

数据来源与参考

  • MySQL 8.0 Reference Manual: mysqlbinlog - utility for processing binary log files
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌