mysql数据误删如何从binlog中恢复?

今天开发兄弟误删了测试数据,问我能不能恢复?

我们在binlog里给找到这些数据了 。本来想让他用正则提取一下。后来他说能把这个binlog给转换成sql吗,我就找到这工具了

传送门

https://github.com/danfengcao/binlog2sql

这个东西需要Python2.7或者3.4
MySQL 5.6, 5.7

正好都满足了

然后就给clone下来,然后安装依赖

shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
shell> pip install -r requirements.txt

然后就是MySQL的配置了

MySQL server必须设置以下参数:

[mysqld]
server_id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1G
binlog_format = row
binlog_row_image = full
user需要的最小权限集合:
select, super/replication client, replication slave

建议授权
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 
权限说明

select:需要读取server端information_schema.COLUMNS表,获取表结构的元信息,拼接成可视化的sql语句
super/replication client:两个权限都可以,需要执行'SHOW MASTER STATUS', 获取server端的binlog列表
replication slave:通过BINLOG_DUMP协议获取binlog内容的权限

我这里就直接用root直接干就完了

上干货

python3 /root/binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uroot -p'password' -d 库名-t 表名 --start-file='bin.log文件' > csdn.sql 

直接给重定向到文件就完事了 ,不然他会输出到控制台上

可以看他的github ,这个大神真牛逼 ,源码150行python代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值