TypechoJoeTheme

Jim Tse

【MySQL】binlog恢复误删数据

本文最后更新于2020年05月05日,已超过1598天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

mysql开启binlog

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=D:\\Program Files\\mysql-5.7.29-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\\Program Files\\mysql-5.7.29-winx64\\data

# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

server-id = 1
sync_binlog=1
log_bin = mysql-bin
binlog_format = row
expire_logs_days = 7
log_error = D:\\Program Files\\mysql-5.7.29-winx64\\var\\log\\mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = D:\\Program Files\\mysql-5.7.29-winx64\\var\\log\\mysql-slow.log
binlog_cache_size = 4M

max_allowed_packet=2048M
wait_timeout=288000
interactive_timeout = 288000

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

重置binlog

master reset;

查看binlog

SHOW BINLOG EVENTS IN 'mysql-bin.000002';

结束并新建一个binlog文件

flush logs;

第三方工具 binlog2sql

这个工具是基于Python开发的(2.7+,3.4+),所以根据手册先安装相关依赖

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

使用方法和官方工具类似,提供偏移位置或者起始时间来进行准确定位。如果不提供定位信息,就会从头开始显示所有信息。

python  D:\workspace\binlog2sql\binlog2sql\binlog2sql.py --flashback -h127.0.0.1 -P3306 -uroot -p --start-file=mysql-bin.000002 --end-pos=436 -d stema > rec.sql
赞(0)
版权属于:

Jim Tse

本文链接:

https://jimtse.eu.org:88/program/mysql-binlog-recover.html(转载时请注明本文出处及文章链接)

评论 (0)