前言
嘤。
晚上跑了个循环删除部分数据的程序,因为表很大要删的很多,没有索引不能用where,所以遍历表取出来数据检测后根据id删。早上起来发现半夜断电了,可能因为我这个程序在运行中的时候断电了,mysql启动不起来了。。
参考文献
https://www.cnblogs.com/lnlvinso/p/4596531.html
大致思路
先强制启动,将数据备份出来,然后找到坏表删掉或重装数据库,将数据恢复回去。
启动报错
运行 service mysql start 启动命令报错,查看了一下错误日志,很长一串,翻译过来大概就是:
msql上次未正常关闭(因为断电),开始扫描恢复,回滚,崩溃恢复,碰撞恢复完成,InnoDB线程140197291972352出现问题,恢复失败。不断循环这一段日志。
2021-03-11 09:30:43 0x7f8239c95700 InnoDB: Assertion failure in thread 140197291972352 in file btr0cur.cc line 389
InnoDB: Failing assertion: btr_page_get_next(get_block->frame, mtr) == page_get_page_no(page)
InnoDB: We intentionally generate a memory trap.
强制启动
在数据库的