解决解决MySQL数据库意外崩溃导致表数据文件损坏无法启动的问数据库意外崩溃导致表数据文件损坏无法启动的问
题题
主要介绍了MySQL数据库意外崩溃导致表数据文件损坏无法启动的问题及解决方法,本文给大家介绍的非常详
细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
问题故障:问题故障:
MySQL数据库意外崩溃,一直无法启动数据库。
报错日志:报错日志:
启动报错:service mysqld restart
ERROR! MySQL server PID file could not be found!
Starting MySQL. ERROR! The server quit without updating PID file (/www/wdlinux/mysql/var/iZ2358oz5deZ.pid).
数据库数据库error日志日志:
200719 22:07:43 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Error: trying to add tablespace 840 of name './ob_wp/ob_termmeta.ibd'
InnoDB: to the tablespace memory cache, but tablespace
InnoDB: 840 of name './dev_nss/dg_queue.ibd' already exists in the tablespace
InnoDB: memory cache!
200719 22:07:43 mysqld_safe mysqld from pid file /www/wdlinux/mysql/var/iZ2358oz5deZ.pid ended
提示:数据库启动时读取表空间信息时,ob-wp库中的表ob_users.ibd表数据文件已存在于表空间中。
拓展:拓展:
存储引擎是myisam, 在数据库目录下会看到3类文件:.frm、.myi、.myd
(a) *.frm--表定义,是描述表结构的文件。
(b) *.MYD--"D"数据信息文件,是表的数据文件。
(c) *.MYI--"I"索引信息文件,是表数据文件中任何索引的数据树
存储引擎是InnoDB, 在data目录下会看到2类文件:.frm、.ibd
(a) *.frm--表结构的文件。
(b) *.ibd--表数据文件
出处:https://www.cnblogs.com/liucx/
方法一:方法一:
根据提示信息判定该InnoDB表损坏,于是尝试将dev_nss库目录中的表结构和表数据文件备份
mv ob_termmeta.ibd ob_termmeta.ibd,bak
mv ob_termmeta.frm ob_termmeta.frm.bak
然后重启了下mysql,发现还是无法启动,提示其他表数据文件已存在,连续3次将已损坏的文件备份,还是无法启动。故放
弃此方法。
方法二:方法二:
1.查阅官网文档,在mysql配置文件中/etc/my.cnf添加配置,成功启动
[mysqld]
innodb_force_recovery = 1
评论0