### 基本用法
**解析出标准 SQL**
```bash
shell> python binlog2sql.py -h127.0.0.1 -P3306 -uadmin -p'admin' -dtest -t test3
test4 --start-file='mysql-bin.000002'
输出:
INSERT INTO `test`.`test3`(`addtime`, `data`, `id`) VALUES ('2016-12-10
13:03:38', 'english', 4); #start 570 end 736
UPDATE `test`.`test3` SET `addtime`='2016-12-10 12:00:00', `data`='中文', `id`=3
WHERE `addtime`='2016-12-10 13:03:22' AND `data`='中文' AND `id`=3 LIMIT 1;
#start 763 end 954
DELETE FROM `test`.`test3` WHERE `addtime`='2016-12-10 13:03:38' AND
`data`='english' AND `id`=4 LIMIT 1; #start 981 end 1147
```
**解析出回滚 SQL**
```bash
shell> python binlog2sql.py --flashback -h127.0.0.1 -P3306 -uadmin -p'admin'
-dtest -ttest3 --start-file='mysql-bin.000002' --start-position=763 --stop-
position=1147
输出:
INSERT INTO `test`.`test3`(`addtime`, `data`, `id`) VALUES ('2016-12-10
13:03:38', 'english', 4); #start 981 end 1147
UPDATE `test`.`test3` SET `addtime`='2016-12-10 13:03:22', `data`='中文', `id`=3
WHERE `addtime`='2016-12-10 12:00:00' AND `data`='中文' AND `id`=3 LIMIT 1;
#start 763 end 954
```
### 选项
**mysql 连接配置**
-h host; -P port; -u user; -p password
**解析模式**
--stop-never 持续解析 binlog。可选。默认 False,同步至执行命令时最新的 binlog 位置。
-K, --no-primary-key 对 INSERT 语句去除主键。可选。默认 False
-B, --flashback 生成回滚 SQL,可解析大文件,不受内存限制。可选。默认 False。与 stop-never
或 no-primary-key 不能同时添加。
--back-interval -B 模式下,每打印一千行回滚 SQL,加一句 SLEEP 多少秒,如不想加 SLEEP,请设为
0。可选。默认 1.0。
**解析范围控制**
--start-file 起始解析文件,只需文件名,无需全路径 。必须。
--start-position/--start-pos 起始解析位置。可选。默认为 start-file 的起始位置。
评论