
《MysqL入门MysqL innodb 异常修复经验分享》要点:
本文介绍了MysqL入门MysqL innodb 异常修复经验分享,希望对您有用。如果有疑问,可以联系我们。
MysqL必读一套测试用的MysqL库,之前用的centos6默认源里的MysqL 5.1.71的版本 .后来想试用下Percona server 5.7,由于这套库里没有什么重要数据 .所以 *** 作前也未进行备份,配置好源后,直接就进行了安装.数据文件也存放在默认位置,安装完成后,直接启动MysqL,发现启动失败,发现无法启动正常启动.
MysqL必读一、回退重新装MysqL
MysqL必读为避免再从其他地方导入这个数据的麻烦,先对当前库的数据库文件做了个备份(/var/lib/MysqL/位置).接下来将Percona server 5.7包进行了卸载,重新安装原先老的5.1.71的包,启动MysqL服务,提示UnkNown/unsupported table type: innodb,无法正常启动.
MysqL必读110509 12:04:27 InnoDB: Initializing buffer pool,size = 384.0M110509 12:04:27 InnoDB: Completed initialization of buffer poolInnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytesInnoDB: 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: innodb110509 12:04:27 [ERROR] Aborting110509 12:04:27 [Note] /usr/sbin/MysqLd: Shutdown completeMysqL必读删除/var/lib/MysqL/目录,重新启动数据库服务,并初始化,发现正常,show engines能发现有innodb引擎.再将数据库停掉,将之前备份的/var/lib/MysqL/目录的内容覆盖当前位置的内容,重启.又发现不能进行启动,报错内容和刚刚一样.
MysqL必读/var/lib/MysqL目录内容的结构如下:
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_logfile1drwx------ 2 MysqL MysqL 4096 2月 26 17:20 MysqLdrwx------ 2 MysqL MysqL 4096 2月 26 17:24 wikiMysqL必读wiki目录是测试数据的库,ibdata1文件为数据文件,ib开头的两个文件为日志文件,MysqL 目录下为系统库相关的东西 .再次使用初始化的数据,并将wiki目录和ibdata1文件覆盖到/var/lib/MysqL 目录下,可以正常启动,也可以正常登录.
MysqL必读二、innodb模块重装
MysqL必读不过在通过MysqLdump备份时,又提示unkNow table engine "Innodb" .登录后,查看当前所有的引擎类型,发现其中果然不存在innodb类型:
MysqL必读
MysqL必读通过alter命令修改其中一个表的类型为MyISAM,发现仍然报错.
MysqL必读
MysqL必读通过 find 查找发现/usr/lib64/MysqL/plugin/目录下有ha_innodb_plugin.so文件.印象中MysqL5以后的版本支持在线插件安装 .通过下面查看确认,果然支持:
MysqL必读
MysqL必读使用如下命令加载时,发现不成功:
MysqL必读install plugin innodb soname 'ha_innodb.so';MysqL必读三、备份
MysqL必读在/etc/my.cnf中增加如下配置:
MysqL必读plugin-load=innodb=ha_innodb_plugin.soplugin_dir=/usr/lib64/MysqL/plugin/default-storage-engine=InnoDB MysqL必读发现仍启动失败.查看MysqL-error.log发现有如下内容:
MysqL必读InnoDB: Database page corruption on disk or a FailedInnoDB: file read of page 7.InnoDB: You may have to recover from a backup.InnoDB: It is also possible that your operatingInnoDB: system has corrupted its own file cacheInnoDB: and rebooting your computer removes theInnoDB: error.InnoDB: If the corrupt page is an index pageInnoDB: you can also try to fix the corruptionInnoDB: by dumPing,dropPing,and reimportingInnoDB: the corrupt table. You can use CHECKInnoDB: table to scan your table for corruption.InnoDB: See also http://dev.MysqL.com/doc/refman/5.1/en/forcing-innodb-recovery.HTMLMysqL必读打开forcing-innodb-recovery官方页面,发现可以通过指定innodb_force_recovery参数,进行强制启动和恢复.在/etc/my.cnf中增加如下内容:
MysqL必读innodb_force_recovery=6
MysqL必读重新启动成功了.通过MysqLdump备份也没有问题,将备份数据导入其他主机发现也正常可以测试.
MysqL必读这下就好搞了,将MysqL彻底删除,重新安装Percona server 5.7,安装完后,建库,还原数据,程序重新连接,一切OK.
MysqL必读总结:
MysqL必读由于MysqL innodb数据文件的特性,可以在出现问题,无法正常启动时,先将./ib_logfile0 和 ./ib_logfile1 两个日志文件先移走,再启动,如果还不成功,可以用innodb_force_recovery参数进行强制恢复.除此之外,日志也很重启,有问题先看日志.
总结以上是内存溢出为你收集整理的Mysql入门mysql innodb 异常修复经验分享全部内容,希望文章能够帮你解决Mysql入门mysql innodb 异常修复经验分享所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)