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

MySQL启动后几秒崩溃,innodb_force_recovery=6无效求助

MySQL服务启动数秒后崩溃,innodb_force_recovery=6无效的排查方案

问题背景

  • 服务启动后数秒即停止,设置innodb_force_recovery=6无法解决故障
  • 两个月前曾因断电导致崩溃,当时已完成恢复并正常运行至今,现出现严重底层故障

完整错误日志(中文翻译)

关于崩溃原因的排查信息可参考官方手册。
2022-10-24T07:14:00.931490Z 0 [警告] [MY-011068] [服务器] 语法'--ssl=off'已被弃用,后续版本会移除,请改用'--tls-version=invalid'。
2022-10-24T07:14:00.931754Z 0 [警告] [MY-010097] [服务器] --secure-file-priv配置不安全:当前值未限制生成文件的存储位置,建议设置为合法的非空路径。
2022-10-24T07:14:00.931858Z 0 [系统] [MY-010116] [服务器] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.30) 以进程11348启动
2022-10-24T07:14:00.957031Z 1 [系统] [MY-013576] [InnoDB] InnoDB初始化已启动
2022-10-24T07:14:05.020472Z 1 [系统] [MY-013577] [InnoDB] InnoDB初始化已完成
2022-10-24T07:14:06.443189Z 0 [警告] [MY-011302] [服务器] 插件mysqlx报告:'SSL配置失败:"没有证书和私钥的SSL上下文不可用"'
2022-10-24T07:14:06.445335Z 0 [系统] [MY-011323] [服务器] X插件已准备好接受连接。绑定地址: '::' 端口: 33060
2022-10-24T07:14:06.445535Z 0 [系统] [MY-010931] [服务器] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe:已准备好接受连接。版本: '8.0.30' 套接字: '' 端口: 3306 MySQL Community Server - GPL。
2022-10-24T07:14:46.604890Z 0 [错误] [MY-013183] [InnoDB] 断言失败:fsp0fsp.cc:2152:inode 线程3196
InnoDB: 我们主动触发内存陷阱。
InnoDB: 请向官方提交详细bug报告。
InnoDB: 如果反复出现断言失败或崩溃,即使是在mysqld启动后立即发生,可能是InnoDB表空间损坏。请参考官方文档关于强制恢复的内容。
07:14:46 UTC - mysqld 遇到异常0x16 ;
大概率是触发了bug,但也可能由硬件故障导致。
线程指针: 0x2cf63dc87d0
尝试生成回溯信息。你可以用以下信息定位mysqld崩溃位置。如果之后没有信息输出,说明情况非常严重...
7ff755370858    mysqld.exe!?my_print_stacktrace@@YAXPEBEK@Z()
7ff75450e92b    mysqld.exe!?print_fatal_signal@@YAXH@Z()
7ff75450e6f3    mysqld.exe!?my_server_abort@@YAXXZ()
7ff7553547fa    mysqld.exe!?my_abort@@YAXXZ()
7ff75559ca99    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff75555c866    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff75555c46e    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff7554640f2    mysqld.exe!??$endl@DU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@@Z()
7ff755466d8d    mysqld.exe!??$endl@DU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@@Z()
7ff755465e2f    mysqld.exe!??$endl@DU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@@Z()
7ff755465ccb    mysqld.exe!??$endl@DU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@@Z()
7ff7554630c8    mysqld.exe!??$endl@DU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@@Z()
7ff755474202    mysqld.exe!??$endl@DU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@@Z()
7ff755477cc4    mysqld.exe!??$endl@DU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@@Z()
7ff75553033d    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7fffe04d1bb2    ucrtbase.dll!_configthreadlocale()
7fffe0807034    KERNEL32.DLL!BaseThreadInitThunk()
7fffe27026a1    ntdll.dll!RtlUserThreadStart()

尝试获取部分变量信息。
部分指针可能无效,导致转储终止。
查询 (0): 
连接ID (线程ID): 0
状态: NOT_KILLED

关于崩溃原因的排查信息可参考官方手册。

排查与修复步骤

1. 硬件故障排查

  • 磁盘检测:用CHKDSK扫描存储MySQL数据的磁盘,检查是否存在坏道或读写异常
  • 内存验证:运行Windows内存诊断工具,排除内存损坏导致的程序崩溃

2. 进阶恢复参数尝试

  • 在my.cnf或my.ini中添加innodb_purge_threads=0,搭配innodb_force_recovery=6再次尝试启动,减少后台清理操作对损坏表空间的影响
  • 启动时添加参数--skip-grant-tables --skip-innodb,跳过InnoDB启动流程,若能进入命令行,优先导出MyISAM类型表的数据

3. 表空间修复与数据恢复

  • 若有最近的全量备份,直接恢复到全新的MySQL实例中
  • 无备份时,可尝试用第三方数据恢复工具扫描损坏的InnoDB表空间,提取可恢复的数据

4. 版本与bug验证

  • 检查MySQL 8.0.30的官方bug列表,确认是否存在fsp0fsp.cc:2152相关的已知问题,考虑升级到同系列稳定版本(如8.0.36)后再尝试启动

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:35:28