当数据库出现损坏时,应优先保证现有数据的完整。在恢复时需要依次使用不同的模式。即先使用第一种模式,失败后依次尝试其余的模式,直到可以将数据读取出来为止。注意,不能在MySQL运行过程中在提示符下直接修改该参数。例如直接执 行“set innodb_force_recovery=2;”,MySQL 会提示该参数处于只读状态而拒绝修改。只能在配置文件中进行修改,并重启数据库使之生效。
当设置好恢复模式后,创建一个新表,使用MYISAM存储引擎用于恢复数据。因为原有的InnoDB数据表已经损坏,自然无法直接使用。当开启恢复模式后,所有的InnoDB数据表不能处于只读状态,不能导入数据,因此只能使用MYISAM引擎来恢复数据。接着使用“Insert Into”命令,从原数据表中读取数据,将其导入新的数据表中。然后利用“Drop”命令删除原有的表,利用“Rename”命令,将新的表更名为原有的表,最后,将数据库引擎修改 为 InnoDB,将“innodb_force_recovery”的只设置为0,并重启数据库。