Loading

window下 binlog2sql安装使用

一、 环境准备

1 python环境3.6以上
2 Git工具
3 mysql数据库权限

二 、安装步骤

1 获取源码:

git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql

2 安装依赖

binlog2sql依赖 Python库。特别注意:如果你连接的是 MySQL 8.0 版本,默认的依赖包版本可能过低,会导致连接失败。

  • 修改配置文件: requirements.txt
    找到 PyMySQL0.7.11(或类似旧版本),将其修改为:PyMySQL0.9.3
  • 执行安装命令
    在binlog2sql 目录下执行:
python -m pip install -r requirements.txt

三 、数据库配置与权限

在使用工具前,必须确保 MySQL 服务端配置正确,且账号有权限读取日志。

1. MySQL 配置文件 (my.ini)

[mysqld]
server_id = 1
log_bin = mysql-bin.log           # 开启 Binlog
binlog_format = row               # 必须为 ROW 模式
binlog_row_image = full           # 记录完整的行信息
expire_logs_days = 7              # 日志保留天数

修改配置后需重启 MySQL 服务。

2. 账号权限

你需要为 binlog2sql 创建一个专用账号,并授予最小权限集合:

-- 创建用户(示例)
CREATE USER 'binlog_user'@'%' IDENTIFIED BY 'password';

-- 授予权限
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'binlog_user'@'%';
FLUSH PRIVILEGES;
  • SELECT: 读取表结构元信息。
  • REPLICATION SLAVE/CLIENT: 读取 Binlog 内容。

四、 常用命令与实战

1. 查看 Binlog 文件列表

SHOW BINARY LOGS;

2解析误操作(查看原始 SQL)

python binlog2sql.py -h 127.0.0.1 -P 3306 -u binlog_user -p'password' -d testdb -t users --start-file='mysql-bin.000005' --start-datetime='2026-04-23 10:00:00' --stop-datetime='2026-04-23 10:10:00'

3 生成回滚 SQL(Flashback)

python binlog2sql.py -h127.0.0.1 -P3306 -u binlog_user -p'password' -d testdb -t users --start-file='mysql-bin.000005' --start-datetime='2026-04-23 10:00:00' --stop-datetime='2026-04-23 10:10:00' -B > rollback.sql
posted @ 2026-04-23 17:28  火柴天堂  阅读(6)  评论(0)    收藏  举报