误删数据也是难免会发生的事(对于粗心的我来说),接下来根据血泪经验讲一下如何恢复被误删的数据。
首先你要对mysql有配置binlog
具体的配置方式网上有很多,我就不写了,下面附上我的配置。
binlog_format = ROW
log-bin = /data/arch/mysql-bin
log_bin_index = /data/arch/mysql-bin.index
expire_logs_days = 7
注意⚠️,这边的binlog_format必须设置为Row Level或者Mixed,
不然是不会记录delete的具体语句的,也就没法恢复了。
参考:
Mysql binlog 三种模式的区别
接下来开始作数据恢复
分为三步:
- 将对应表的delete语句全部拷出来
- 进行字符转换,转成可执行的insert sql语句。
- 执行sql语句,恢复成功。
第一步,导出binlog
./mysqlbinlog --no