- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery
蓝队云小课堂:
由于windows服务器经常死机,导致有时mysql启动不了,查看mysql-error.log发现以下错误信息:
[ERROR] InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files. Please refer to http://www.landui.com/doc/refman/5.7/en/forcing-innodb-recovery.html for information about forcing recovery.
[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、配置my.cnf
配置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、配置my.cnf
将my.cnf中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的数据目录,手动删除相关数据库的文件夹或者数据库文件夹下的数据表文件,前提是数据一定导出或备份成功。
更多小知识,可联系蓝队云一起探讨。
售前咨询
售后咨询
备案咨询
二维码
TOP