可以,但是完全恢复所有的表不一定可以
工具: innodb-recovery
Official Website: http://code.google.com/p/innodb-tools/
这个工具用来检查InnoDB空间表和恢复由于drop 以及truncate引发的损坏空间表的数据库门
此工具使用需要安装Perl的一些插件,有:
DBI
Mysql::DBD
恢复前提,提了以上的插件外,如果在使用时有报少插件,则需要找到少的插件,再安装
另外, 恢复数据的前提是,数据库使用的是innodb引擎,当用'DROP DATABASE DBNAME'后,没有再做其它操作,保证ibdata1文件的完整性及不被后续写数据破坏
执行恢复的过程中,有一步是需要注意的,就是"Recovery steps: Preparing the code for recovery"
默认生成的表结构中的一些列属性的格式是不精确的,你需要精确这些属性,恢复的概率才会提高
######################
Note that this is a translation of the table format into what InnoDB Tools use internally as a C program.
You may need to edit this file later on, to force some constraints on the recovered data.
#####################
当你按照 http://code.google.com/p/innodb-tools/wiki/InnodbRecoverySteps 里的步骤操作完,并恢复数据后,
相信, 你以后再也不会范类似的错误了,因为这个过程是蛮长的,当然,前提是你的数据表多以及数据量大。