今天在线运行的一个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正常。我想可能是查询数据的时候,表出现了损坏导致出错,修复一下就可以了。