找到当前binlog文件,执行一下命令
mysqlbinlog --base64-output=decode-rows -v --database=数据库名 --start-datetime="年-月-日 时:分:秒" --stop-datetime="年-月-日 时:分:秒" binlog.000*** > record.sql
打开record.sql 通过删除表找到记录
另存为 backup.sql
执行命令将其转换为insert语句:
cat backup.sql | sed -n '/###/p' | sed 's/### //g;'| sed 's/DELETE FROM/);INSERT INTO/g;' |sed 's/WHERE/VALUES(/g;' |sed -E 's/(@17.),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g'
直接在需要恢复的库中执行即可