You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL因performance_schema.innodb_redo_log_files崩溃重启求助

MySQL重启后持续崩溃:InnoDB断言失败(dict0dict.cc:3498)与performance_schema表异常

故障现象

  • 此前运行正常的MySQL,重启后陷入持续自动重启循环
  • 启动时添加--innodb_force_recovery=2及以上级别参数,可正常访问数据库
  • 通过mysql.server start --general_log=1 --general_log_file=/tmp/mysql_output.log开启通用日志后发现:进程尝试创建performance_schema.innodb_redo_log_files表时,触发InnoDB断言失败(报错位置为dict0dict.cc:3498),随后收到signal 6导致崩溃,进而触发重启循环
  • 已完成全量数据库备份,但无法读取performance_schema.innodb_redo_log_files表:执行DESCRIBE innodb_redo_log_files;可返回表结构,但执行查询操作时提示表不存在

排查与修复方案

1. 临时关闭performance_schema加载

修改MySQL配置文件(my.cnf或my.ini),添加以下配置项:

performance_schema = OFF

保存配置后尝试正常启动MySQL,若能成功启动,再针对性排查performance_schema的异常问题。

2. 重建performance_schema表空间

若临时关闭performance_schema后启动正常,可按以下步骤重建:

  1. 停止MySQL服务
  2. 删除MySQL数据目录下的performance_schema文件夹(该目录下为performance_schema的表空间文件)
  3. 修改配置文件恢复performance_schema = ON,启动MySQL服务,系统会自动重建performance_schema的所有表

3. 修复InnoDB数据字典损坏

由于断言失败发生在InnoDB字典模块(dict0dict.cc),说明数据字典可能存在损坏:

  1. 保持--innodb_force_recovery=2启动状态,导出所有数据库(已备份可跳过)
  2. 停止MySQL服务,删除InnoDB系统表空间文件(通常为ibdata1、ib_logfile0、ib_logfile1)
  3. 执行mysqld --initialize-insecure重新初始化MySQL(此操作会重置root密码,需提前记录或后续重置)
  4. 重新启动MySQL并导入之前备份的数据

4. 版本兼容性调整

部分MySQL版本在performance_schema.innodb_redo_log_files表的创建逻辑上存在已知bug,可尝试:

  • 升级至当前版本分支的最新稳定版
  • 回退到之前确认运行正常的MySQL版本

内容的提问来源于stack exchange,提问作者Bankzilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 07:15:38