mysql错误:information about forcing recovery
[ERROR]
InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files.
Please refer to https://mariadb.com/kb/en/library/innodb-recovery-modes/ for information about forcing recovery.
已实践
前提数据备份:
1. 将三个文件进行备份后删除:ib_logfile0、ib_logfile1、ibdata1
2. 一定要确认元数据导出成功了
3. 当数据导出成功后,删除原数据库中的数据是,如果提示不能删除,可在命令进入MySQL的数据目录,手动删除相关数据库文件夹或者数据库文件夹下的数据表文件,前提是数据一定导出或备份成功。
具体操作:
1、配置my.cnf 配置innodb_force_recovery = 1 到 6 试到正确为止,重启MySQL
2、导出数据脚本 mysqldump -uroot -p123456 test > test.sql 导出SQL脚本。或者用Navicat将所有数据库/表导入到其他服务器的数据库中。
注意:这里的数据一定要备份成功。然后删除原数据库中的数据。
3、删除ib_logfile0、ib_logfile1、ibdata1 备份MySQL数据目录下的ib_logfile0、ib_logfile1、ibdata1三个文件,然后将这三个文件删除
4、配置my.cnf 将my.cnf中innodb_force_recovery 这行配置删除或者配置为innodb_force_recovery = 0,重启MySQL服务
5、将数据导入MySQL数据库 mysql -uroot -p123456 test < test.sql;
或者用Navicat将备份的数据导入到数据库中。 如果在导入数据过程中发生tablespace不存在的问题,请删除data目录相应database下的文件。