由于磁盘满了,停掉mysql服务,清理磁盘,重启mysql报错,查看日志,报错如下
2021-07-13T09:01:02.803196Z 0 [ERROR] /opt/mysql/bin/mysqld: Table './mysql/db' is marked as crashed
and should be repaired
2021-07-13T09:01:02.803218Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table './my
sql/db' is marked as crashed and should be repaired
2021-07-13T09:01:02.803235Z 0 [ERROR] Fatal error: Failed to initialize ACL/grant/time zones structu
res or failed to remove temporary table files.
2021-07-13T09:01:02.803277Z 0 [ERROR] Aborting
发现是mysql.db表损坏,修复方法如下
#3种方法,耗时从上至下越来越久,效果也更好
myisamchk --recover --quick /path/to/tblName
myisamchk --recover /path/to/tblName
myisamchk --safe-recover /path/to/tblName
#例
myisamchk --recover --quick /var/lib/mysql/mysql/db
修复后即可正常启动