备份导出

mysqldump -h xxx -u -p --database xxx > ./data.sql

导入的时候没有删除其中的drop table语句。

补救措施:

  • bin log
  • general log

如果MySQL配置中开启了binlog,那么会在mysql的目录下产生近期(一般是几天)执行的所有记录。

./mysqlbinlog --no-defaults --base64-output=decode-rows –v --database db --start-datetime="2020-05-23 00:00:00" --stop-datetime="2020-05-24 00:00:00" mysql-bin.000001 > ./mysql1.sql

通过该命令,导出某binlog指定时间内执行的SQL。如果时间指定的不正确,执行错误的SQL也会在其中。

拿出来后,因为只删除了部分表,用grep解析出需要恢复的那部分数据。