300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery

MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery

时间:2018-10-04 04:09:02

相关推荐

MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery

由于服务器断电死机,mysql启动不了, 在删除ib_logfile0、ib_logfile1、ibdata1这三个文件,mysql-error.log一下就塞满的存储,查看日志发现:

-08-27T20:00:58.495267+08:00 0 [ERROR] InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files. Please refer to /doc/refman/5.7/en/forcing-innodb-recovery.html for information about forcing recovery.

-08-27T20:00:58.495518+08:00 0 [ERROR] InnoDB: Page [page id: space=0, page number=266] log sequence number 8181701917 is in the future! Current system log sequence number 8181692811.

直接上解决方案:

1、配置f

配置innodb_force_recovery = 1或2——6几个数字,重启MySQL

2、导出数据脚本

mysqldump -uroot -p123456 test > test.sql

导出SQL脚本。或者用Navicat将所有数据库/表导入到其他服务器的数据库中。

注意:这里的数据一定要备份成功。然后删除原数据库中的数据。

3、删除ib_logfile0、ib_logfile1、ibdata1

备份MySQL数据目录下的ib_logfile0、ib_logfile1、ibdata1三个文件,然后将这三个文件删除

4、配置f

将f中innodb_force_recovery = 1或2——6几个数字这行配置删除或者配置为innodb_force_recovery = 0,重启MySQL服务

5、将数据导入MySQL数据库

mysql -uroot -p123456 test < test.sql; 或者用Navicat将备份的数据导入到数据库中。

如果在导入数据过程中发生tablespace不存在的问题,请删除data目录相应database下的文件。

此种方法下要注意的问题:

1、ib_logfile0、ib_logfile1、ibdata1这三个文件一定要先备份后删除;

2、一定要确认原数据导出成功了

3、当数据导出成功后,删除原数据库中的数据时,如果提示不能删除,可在命令行进入MySQL的数据目录,手动删除相关数据库的文件夹或者数据库文件夹下的数据表文件,前提是数据一定导出或备份成功。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。