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

浙公网安备 33010602011771号