mysql innodb 异常修复经验分享
发布时间 - 2026-01-11 00:54:34 点击率:次一套测试用的mysql库,之前用的centos6默认源里的mysql 5.1.71的版本 。后来想试用下Percona server 5.7,由于这套库里没有什么重要数据 。所以操作前也未进行备份,配置好源后,直接就进行了安装。数据文件也存放在默认位置,安装完成后,直接启动mysql,发现启动失败,发现无法启动正常启动。

一、回退重新装mysql
为避免再从其他地方导入这个数据的麻烦,先对当前库的数据库文件做了个备份(/var/lib/mysql/位置)。接下来将Percona server 5.7包进行了卸载,重新安装原先老的5.1.71的包,启动mysql服务,提示Unknown/unsupported table type: innodb,无法正常启动。
110509 12:04:27 InnoDB: Initializing buffer pool, size = 384.0M 110509 12:04:27 InnoDB: Completed initialization of buffer pool InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 157286400 bytes! 110509 12:04:27 [ERROR] Plugin 'InnoDB' init function returned error. 110509 12:04:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 110509 12:04:27 [ERROR] Unknown/unsupported table type: innodb 110509 12:04:27 [ERROR] Aborting 110509 12:04:27 [Note] /usr/sbin/mysqld: Shutdown complete
删除/var/lib/mysql/目录,重新启动数据库服务,并初始化,发现正常,show engines能发现有innodb引擎。再将数据库停掉,将之前备份的/var/lib/mysql/目录的内容覆盖当前位置的内容,重启。又发现不能进行启动,报错内容和刚刚一样。
/var/lib/mysql目录内容的结构如下:
-rw-rw---- 1 mysql mysql 10485760 2月 26 18:10 ibdata1 -rw-rw---- 1 mysql mysql 5242880 2月 26 18:10 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 2月 26 17:20 ib_logfile1 drwx------ 2 mysql mysql 4096 2月 26 17:20 mysql drwx------ 2 mysql mysql 4096 2月 26 17:24 wiki
wiki目录是测试数据的库,ibdata1文件为数据文件,ib开头的两个文件为日志文件,mysql 目录下为系统库相关的东西 。再次使用初始化的数据,并将wiki目录和ibdata1文件覆盖到/var/lib/mysql 目录下,可以正常启动,也可以正常登录。
二、innodb模块重装
不过在通过mysqldump备份时,又提示unknow table engine "Innodb" 。登录后,查看当前所有的引擎类型,发现其中果然不存在innodb类型:
通过alter命令修改其中一个表的类型为MyISAM ,发现仍然报错。
通过 find 查找发现/usr/lib64/mysql/plugin/目录下有ha_innodb_plugin.so文件。印象中mysql5以后的版本支持在线插件安装 。通过下面查看确认,果然支持:
使用如下命令加载时,发现不成功:
install plugin innodb soname 'ha_innodb.so';
三、备份
在/etc/my.cnf中增加如下配置:
plugin-load=innodb=ha_innodb_plugin.so plugin_dir=/usr/lib64/mysql/plugin/ default-storage-engine=InnoDB
发现仍启动失败。查看mysql-error.log发现有如下内容:
InnoDB: Database page corruption on disk or a failed InnoDB: file read of page 7. InnoDB: You may have to recover from a backup. InnoDB: It is also possible that your operating InnoDB: system has corrupted its own file cache InnoDB: and rebooting your computer removes the InnoDB: error. InnoDB: If the corrupt page is an index page InnoDB: you can also try to fix the corruption InnoDB: by dumping, dropping, and reimporting InnoDB: the corrupt table. You can use CHECK InnoDB: TABLE to scan your table for corruption. InnoDB: See also http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html
打开forcing-innodb-recovery官方页面,发现可以通过指定innodb_force_recovery参数,进行强制启动和恢复。在/etc/my.cnf中增加如下内容:
innodb_force_recovery=6
重新启动成功了。通过mysqldump备份也没有问题,将备份数据导入其他主机发现也正常可以测试。
这下就好搞了,将mysql彻底删除,重新安装Percona server 5.7,安装完后,建库,还原数据,程序重新连接,一切OK。
总结:
由于mysql innodb数据文件的特性,可以在出现问题,无法正常启动时,先将./ib_logfile0 和 ./ib_logfile1 两个日志文件先移走,再启动,如果还不成功,可以用innodb_force_recovery参数进行强制恢复。除此之外,日志也很重启,有问题先看日志。
# mysql
# innodb
# 异常修复
# MySQL 查看链接及杀掉异常链接的方法
# MySQL手动注册binlog文件造成主从异常的原因
# MySQL数据库连接异常汇总(值得收藏)
# mysql5.7.21启动异常的修复方法
# MySQL定义异常和异常处理详解
# MySQL存储过程中一些基本的异常处理教程
# 分析一个MySQL的异常查询的案例
# MySQL异常处理浅析
# 分析MySQL抛出异常的几种常见解决方式
# 报错
# 重启
# 目录下
# 重新启动
# 无法正常
# 进行了
# 重新安装
# 发现有
# 放在
# 就好
# 还不
# 可以用
# 没有什么
# 也很
# 可以通过
# 并将
# 不存在
# 这下
# 这套
# 其中一个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
敲碗10年!Mac系列传将迎来「触控与联网」双革新
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
详解MySQL数据库的安装与密码配置
如何在 React 中条件性地遍历数组并渲染元素
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
如何快速搭建高效WAP手机网站吸引移动用户?
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何快速搭建安全的FTP站点?
Laravel如何使用查询构建器?(Query Builder高级用法)
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
如何在阿里云ECS服务器部署织梦CMS网站?
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
javascript中对象的定义、使用以及对象和原型链操作小结
java ZXing生成二维码及条码实例分享
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
北京网站制作公司哪家好一点,北京租房网站有哪些?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何快速生成ASP一键建站模板并优化安全性?
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Swift开发中switch语句值绑定模式
Laravel怎么清理缓存_Laravel optimize clear命令详解
如何在阿里云虚拟服务器快速搭建网站?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
如何快速搭建支持数据库操作的智能建站平台?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何快速建站并高效导出源代码?
Laravel如何使用Blade组件和插槽?(Component代码示例)
七夕网站制作视频,七夕大促活动怎么报名?
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
详解CentOS6.5 安装 MySQL5.1.71的方法
清除minerd进程的简单方法
如何用花生壳三步快速搭建专属网站?
如何挑选最适合建站的高性能VPS主机?
制作电商网页,电商供应链怎么做?
香港服务器租用费用高吗?如何避免常见误区?
如何自定义建站之星网站的导航菜单样式?

