mysql修复损坏的innodb:innodb_force_recovery

今天在线运行的一个mysql竟然崩溃了,然后马上登录linux重启mysql

service mysqld restart

一直报错找不到pid和没有读写权限,最后加了权限还是报错。
无奈之下查看mysql日志发现。

InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 5.
InnoDB: You may have to recover from a backup.
2020-05-18 11:36:46 7f11c48e1720 InnoDB: Page dump in ascii and hex (16384 bytes):...

从日志中可以看出是innodb引擎出了问题。日志里提示到 http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html查看强制恢复的方法
在mysql的配置文件my.cnf里找到

[mysqld]
innodb_force_recovery = 1

然后在重启mysql正常启动,然后检查一下出问题的表

mysqlcheck -A -u root -p

没发现有问题的表,然后我就将恢复到以前

[mysqld]
innodb_force_recovery = 0

重启mysql正常。我想可能是查询数据的时候,表出现了损坏导致出错,修复一下就可以了。

标签:

发表评论