一套测试用的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 innodb异常修复相关推荐

  1. mysql 修改引擎_修改MySQL的数据库引擎为INNODB的方法

    本文主要介绍了修改MySQL的数据库引擎为INNODB的方法,希望能对您有所帮助. 对于MySQL数据库,如果你要使用事务以及行级锁就必须使用INNODB引擎.如果你要使用全文索引,那必须使用myis ...

  2. 初探mysql innodb集群_MySQL InnoDB Cluster搭建

    MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluste ...

  3. 游戏服务器异常修复,游戏服务器异常修复

    游戏服务器异常修复 内容精选 换一换 您可以通过"应用管理"页面的应用列表,快速查看应用状态,及相关异常信息,如图1所示.包括:应用状态:即图1中的①应用异常信息:即图1中的②云服 ...

  4. mysql修改数据库历史_MySQL之操作数据库

    二.操作数据库 操作数据库-->操作数据库中的表-->操作数据库中表的数据 注:所有语句都要用;结尾. 1.操作数据库 例:创建数据库westos并使用. 注:以后所有命令带[]表示可选, ...

  5. mysql查询数据库结构_mysql查询数据库下的表结构

    mysql查询数据库下的表结构 方法:1.使用DESCRIBE命令以表格的形式展示表结构,语法"DESCRIBE 表名;":2.使用"SHOW CREATE TABLE& ...

  6. mysql考勤数据库设计_MySQL 数据库设计总结

    规则1: 一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎. 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1 ...

  7. mysql 散列查询_MySQL InnoDB中hash查找表的实现

    MySQL版本:5.7.14 源码位置为hash0hash.h hash0hash.cc 作为一种时间复杂度最优为O(1)的数据结构,但是最坏时间复杂对位O(n)的一种数据结构,但是在良好的设计has ...

  8. mysql innodb事务中_MySQL InnoDB如何保证事务特性示例详解

    前言 如果有人问你"数据库事务有哪些特性"?你可能会很快回答出原子性.一致性.隔离性.持久性即ACID特性.那么你知道InnoDB如何保证这些事务特性的吗?如果知道的话这篇文章就可 ...

  9. mysql表空间权限_MySQL InnoDB表空间加密示例详解

    前言 从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系 ...

  10. mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...

    假设需求:需要把库test1中的的数据迁移到test2中,并且test2中数据量特别大 硬性条件:1.mysql 使用 Innodb引擎,且开启独立表空间,2.两个库的mysql版本一致(不同版本下未 ...

最新文章

  1. 爆发的电池储能市场真相!年销量将超260亿美元
  2. 亚麻:Round Robin
  3. 电商网站数据分析的重要性
  4. NPM:nodejs官方包管理工具的简介、安装、使用方法之详细攻略
  5. 科大星云诗社动态20210817
  6. 排序学习(LTR)经典算法:RankNet、LambdaRank和LambdaMart
  7. 《算法竞赛入门经典》 例题5-2 木块问题(The Blocks Problem,UVa 101)
  8. group client policy无法登录,谢绝访问
  9. c# mvvm模式获取当前窗口_AWTK-MVVM 介绍
  10. 的主机名_如何在Mac 上更改电脑的名称或本地局域网主机名?
  11. Sentinel的简单使用
  12. Valgrind的Memcheck快速入门
  13. 2005-10-22 风波
  14. 计算机英语口语900句,日常英语口语
  15. UVM中drain_time使用
  16. 抖音作品实时监控采集数据,抖音达人下关键词数据抓取
  17. 搜狗微信公众号文章抓取
  18. 华为云CentOS7.6云耀服务器Python环境基本配置
  19. 计算机研究生就业方向之考公
  20. 什么是单元测试?该怎么做单元测试?

热门文章

  1. lvds输入悬空_LVDS布线的一般原则
  2. 802d简明调试手册_802D 简明调试指南.pdf
  3. 串口服务器是什么,有什么功能
  4. 计算机专业研究生的读研规划思考------转载
  5. awk&sed替换字符串
  6. 策略战棋游戏开发计划
  7. 数理统计基础 统计量
  8. 实施工程师面试技巧 –立哥经验
  9. 树莓派4b自带wifi_树莓派4B(ubuntu)无线网络配置
  10. 财经365热点:当阿里巴巴不再讲“中台”