本文主要分享在没有备份的情况下,MySQL数据库如何恢复被删除的表。
包含两个主要的场景:
1、drop table后的恢复
2、truncate table后的恢复
正文:
我们都知道,MySQL Server都很多存储引擎,并不是每种都可以进行异常情况之下都恢复,比如drop table/tuncate table/delete table/update table /drop database又或者是ibdata文件损坏之类的。用的最多的就是Myisam和innodb存储引擎。目前基本上都是5.5+版本了,我想几乎没有人再去使用Myisam了吧。我这里所测试都5.6,5.7版本中默认都存储引擎已经是Innodb了。因此这里我以Innodb引擎为例子进行说明。
MySQL drop table
这里我们首先来测试innodb_file_per_table为off的情况,即表结构和数据存在同一个文件中。这里我分别测试了表存在主键和不存在主键的情况,供参考。
innodb_file_per_table参数为off(有主键的情况)
1创建测试表



本文介绍了在没有MySQL备份的情况下,如何恢复drop table和truncate table操作误删的表。通过详细步骤展示了使用innodb_file_per_table和开源工具undrop_for_innodb进行恢复的过程,强调了数据恢复的条件和限制,提醒用户在数据丢失后立即保护现场以增加恢复可能性。
1771

被折叠的 条评论
为什么被折叠?



