MySQL启动失败异常记录
由于我的xxx选笔记本直接死机了,导致我的虚拟机异常关闭,当时虚拟机MySQL还在运行,今天在使用docker启动MySQL时发现MySQL好像挂了,通过使用docker logs mysql
命令查看日志时发现多次 Page log sequence number is in the future 以及断言失败trx0types.h:579:m_rsegs_n < 2 表示事务系统检测到回滚段数量异常,进一步说明元数据损坏。
恢复方法
- 备份数据文件(至关重要)
在进行任何操作前,复制整个数据目录(/var/lib/mysql/)到安全位置,避免数据丢失。 - 修改配置文件,启用强制恢复
编辑 MySQL 配置文件( /etc/my.cnf 或 /etc/mysql/my.cnf),添加:
innodb_force_recovery = 1
从 1 开始:优先使用最低级别(1),尝试跳过损坏检查,允许启动并导出数据。逐级增加:若启动失败,依次尝试 2、3,每次递增后重启并检查。 - MySQL启动
!注意数据导出后,停止服务器,移除 innodb_force_recovery 配置(或设为 0)。