文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL 数据库报错 Plugin ‘InnoDB‘ init function returned error 的解决办法

2023-09-01 14:31

关注

目录

环境:CentOS 7.xMySQL 5.7

其实造成这种问题的原因有很多种,但是不管是什么问题,最终的原因一般是 redo log 造成的问题。

为什么说是 redo log 造成的呢,因为 redo log 对应的文件就是两个 ib_logfile 开头的文件:ib_logfile0、ib_logfile1;下面的问题都是和 ib_logfile 有关。
MySQL 引擎的具体原理,这里暂不深究了,等后续再详细整理。

下面是实际遇到的造成 InnoDB 引擎不能启动的场景:

由于测试环境经常折腾,对于下面的场景而言,更多的是测试环境出现的问题;生产的话一般操作很谨慎,也不会频繁关机,所以还没有在生产上折腾过。

场景一:服务器突然重启,未正常关闭 MySQL

在测试环境中,服务器直接强制断电(Power Off),并没有手动的关闭 MySQL,再次启动的时候就会发生这样的问题。

2023-03-21T05:30:22.710453Z 0 [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 9156630714 and the end 9156630528.2023-03-21T05:30:22.710511Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error2023-03-21T05:30:23.311477Z 0 [ERROR] Plugin 'InnoDB' init function returned error.2023-03-21T05:30:23.311521Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.2023-03-21T05:30:23.311534Z 0 [ERROR] Failed to initialize plugins.2023-03-21T05:30:23.311542Z 0 [ERROR] Aborting

问题的主要原因:

InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT  between the checkpoint 9156630714 and the end 9156630528.# InnoDB:忽略重做日志,因为检查点 9156630714 和结束 9156630528 之间缺少 MLOG_CHECKPOINT。

场景二:服务器正常关机关不掉,然后强制 kill 掉 MySQL 进程

就说巧不巧吧,再测试环境中,上面是直接断电有问题,然而本想正常关机,结果也不行;MySQL 一直卡在那里,尝试 kill 还是无法停止,无奈只好 kill -9 (强制退出)掉 MySQL

服务器启动后,开始启动 MySQL,然后报错如下:

2023-03-21T05:30:22.710511Z InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes2023-03-21T05:30:22.710511Z InnoDB: than specified in the .cnf file 0 104857600 bytes!2023-03-21T05:30:22.710511Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error2023-03-21T05:30:23.311477Z 0 [ERROR] Plugin 'InnoDB' init function returned error.2023-03-21T05:30:23.311521Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.2023-03-21T05:30:23.311534Z 0 [ERROR] Failed to initialize plugins.2023-03-21T05:30:23.311542Z 0 [ERROR] Aborting

主要原因:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytesInnoDB: than specified in the .cnf file 0 104857600 bytes!# 看问题是因为 ib_logfile0 实际的大小 5242880 与 cnf 文件中指定的 104857600 不一致;# 大概率是丢数据造成的。

解决方案

看错误是 redo log 有问题;如果不知道这个日志文件存放在哪里,可以全局搜索一下:

# 从根目录开始搜索 ib_logfile 开头的文件find ./ -name ib_logfile* ./var/lib/mysql/ib_logfile1./var/lib/mysql/ib_logfile0# 在 /var/lib/mysql 目录下;将文件改个名字备份一下cd /var/lib/mysqlmv ib_logfile0 ib_logfile0.bakmv ib_logfile1 ib_logfile1.bak# 启动 mysqlsystemctl start mysqld

【注】直接删除 ib_logfile 文件,可能会造成部分数据丢失,建议操作之前先备份一下;万一出问题还能进行一下还原。

个人博客:Roc’s Blog

来源地址:https://blog.csdn.net/peng2hui1314/article/details/129686915

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯