mysql 服务innodb启动失败无法重启的处理方法

 时间:2026-02-14 17:08:08

1、此处分为两种情况:1是如果数据不重要或已经有备份,只需恢复mysql启动服务;2是如果数据很重要且没有备份,针对以上两种情况加以说明。

2、1.如果数据不重要或已经有备份,只需要恢复mysql启动服务,具体步骤如下所示:

3、(1)进入mysql 存储数据Data目录,一般是:ProgramData\MySQL\MySQL Server 5.7\Data

4、(2)删除ib开头的几个文件数据及所有物理库,如:

删除ib_logfile*

删除ibdata*

删除所有数据库物理目录(例如数据库为gsxfzfda,则执行rm -rf gsxfzfda)

mysql 服务innodb启动失败无法重启的处理方法

5、(3)重启动mysql服务

6、(4)重新建立数据库或使用备份覆盖恢复数据。

7、2.如果数据很重要且没有备份

      (1)可以使用innodb_force_recovery参数,在ProgramData\MySQL\MySQL Server 5.7\,打开my.ini文件,加入参数innodb_force_recovery=2,启动mysqld,将数据导出然后重建数据库。 

innodb_force_recovery 可以设置为1-6,大的数字包含前面所有数字的影响

(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。

(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。

(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。

(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。

(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。

(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。

在my.cnf(windows是my.ini)中加入

innodb_force_recovery = 6

innodb_purge_thread = 0

8、(2)重启mysql

      这时只可以执行select,create,drop操作,但不能执行insert,update,delete操作执行逻辑导出,完成后将innodb_force_recovery=0,innodb_purge_threads=1,然后重建数据库,最后把导出的数据重新导入即可。

  • js判断当前是否能上网
  • 怎么用夸克查看天气?
  • iphone3gs使用MyWi创建WIFI个人热点
  • 局域网内如何禁止看视频网站
  • java poi导出excel 数字怎么设置成文本
  • 热门搜索
    什么是春秋笔法 free是什么意思 洗礼是什么意思 breakdown什么意思 yuki什么意思 浩瀚的意思 囊萤映雪的意思 君子不器是什么意思 蜂胶胶囊的作用与功效 抛砖引玉的意思