mysql innodb数据库修复_mysql innodb异常修复
一套测试用的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异常修复相关推荐
- mysql 修改引擎_修改MySQL的数据库引擎为INNODB的方法
本文主要介绍了修改MySQL的数据库引擎为INNODB的方法,希望能对您有所帮助. 对于MySQL数据库,如果你要使用事务以及行级锁就必须使用INNODB引擎.如果你要使用全文索引,那必须使用myis ...
- 初探mysql innodb集群_MySQL InnoDB Cluster搭建
MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluste ...
- 游戏服务器异常修复,游戏服务器异常修复
游戏服务器异常修复 内容精选 换一换 您可以通过"应用管理"页面的应用列表,快速查看应用状态,及相关异常信息,如图1所示.包括:应用状态:即图1中的①应用异常信息:即图1中的②云服 ...
- mysql修改数据库历史_MySQL之操作数据库
二.操作数据库 操作数据库-->操作数据库中的表-->操作数据库中表的数据 注:所有语句都要用;结尾. 1.操作数据库 例:创建数据库westos并使用. 注:以后所有命令带[]表示可选, ...
- mysql查询数据库结构_mysql查询数据库下的表结构
mysql查询数据库下的表结构 方法:1.使用DESCRIBE命令以表格的形式展示表结构,语法"DESCRIBE 表名;":2.使用"SHOW CREATE TABLE& ...
- mysql考勤数据库设计_MySQL 数据库设计总结
规则1: 一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎. 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1 ...
- mysql 散列查询_MySQL InnoDB中hash查找表的实现
MySQL版本:5.7.14 源码位置为hash0hash.h hash0hash.cc 作为一种时间复杂度最优为O(1)的数据结构,但是最坏时间复杂对位O(n)的一种数据结构,但是在良好的设计has ...
- mysql innodb事务中_MySQL InnoDB如何保证事务特性示例详解
前言 如果有人问你"数据库事务有哪些特性"?你可能会很快回答出原子性.一致性.隔离性.持久性即ACID特性.那么你知道InnoDB如何保证这些事务特性的吗?如果知道的话这篇文章就可 ...
- mysql表空间权限_MySQL InnoDB表空间加密示例详解
前言 从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系 ...
- mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...
假设需求:需要把库test1中的的数据迁移到test2中,并且test2中数据量特别大 硬性条件:1.mysql 使用 Innodb引擎,且开启独立表空间,2.两个库的mysql版本一致(不同版本下未 ...
最新文章
- 爆发的电池储能市场真相!年销量将超260亿美元
- 亚麻:Round Robin
- 电商网站数据分析的重要性
- NPM:nodejs官方包管理工具的简介、安装、使用方法之详细攻略
- 科大星云诗社动态20210817
- 排序学习(LTR)经典算法:RankNet、LambdaRank和LambdaMart
- 《算法竞赛入门经典》 例题5-2 木块问题(The Blocks Problem,UVa 101)
- group client policy无法登录,谢绝访问
- c# mvvm模式获取当前窗口_AWTK-MVVM 介绍
- 的主机名_如何在Mac 上更改电脑的名称或本地局域网主机名?
- Sentinel的简单使用
- Valgrind的Memcheck快速入门
- 2005-10-22 风波
- 计算机英语口语900句,日常英语口语
- UVM中drain_time使用
- 抖音作品实时监控采集数据,抖音达人下关键词数据抓取
- 搜狗微信公众号文章抓取
- 华为云CentOS7.6云耀服务器Python环境基本配置
- 计算机研究生就业方向之考公
- 什么是单元测试?该怎么做单元测试?