今天开发兄弟误删了测试数据,问我能不能恢复?
我们在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代码。