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

MySQL 8.0.30频繁崩溃报exception 0x16,强制恢复无效求助

MySQL 8.0.30生产环境频繁崩溃的排查与修复方案

问题分析

从提供的错误日志来看,崩溃触发了异常0x16,回溯信息指向以下关键节点:

  • Zstd压缩模块的set_compression_level函数
  • 复制信息初始化Rpl_info_values::init流程
  • STL内存分配器的deallocate调用

结合MySQL 8.0.30的版本特性,这大概率是复制模块与Zstd压缩结合的已知Bug,也不排除硬件内存/磁盘故障的可能。

修复步骤

1. 紧急升级MySQL版本

MySQL 8.0.30存在多个关于Zstd压缩和复制模块的崩溃Bug,官方在后续版本(如8.0.31及以上)中已修复。优先升级到最新稳定版(当前推荐8.0.36或更高),这是最彻底的解决方案。

2. 临时禁用Zstd压缩(无法立即升级时)

修改MySQL配置文件(my.ini/my.cnf),关闭二进制日志压缩:

binlog_compression = OFF

保存配置后重启MySQL服务,观察是否仍出现崩溃。

3. 排查硬件与系统问题

  • 运行Windows内存诊断工具,检测物理内存是否存在故障
  • 使用磁盘检测工具检查存储设备健康状态
  • 确保Windows系统及相关组件(如ucrtbase.dll)已安装最新补丁

4. 验证并重置复制配置

  • 检查复制相关参数(master_info_repository、relay_log_info_repository等)是否配置为TABLE(推荐)而非FILE
  • 若复制状态异常,先备份二进制日志与中继日志,执行以下命令重置复制:
    STOP SLAVE;
    RESET MASTER;
    RESET SLAVE ALL;
    
    之后重新配置复制关系。

5. 收集信息提交Bug报告(若升级后仍崩溃)

若上述操作无效,收集以下信息提交至官方Bug系统:

  • 完整的MySQL错误日志
  • 系统环境详情(Windows版本、CPU、内存、存储配置)
  • 完整的MySQL配置文件内容
  • 崩溃发生时的系统资源监控数据(CPU、内存、磁盘IO)

错误日志原文

10:29:23 UTC - mysqld got exception 0x16 ;
很可能是触发了Bug,但该错误也可能由硬件故障导致。
线程指针: 0x1b14b1a0780
尝试生成回溯信息。您可通过以下信息排查mysqld崩溃位置。若此后无消息,则情况极为严重...
7ff69b180858    mysqld.exe!?my_print_stacktrace@@YAXPEBEK@Z()
7ff69a31e92b    mysqld.exe!?print_fatal_signal@@YAXH@Z()
7ff69a31e6f3    mysqld.exe!?my_server_abort@@YAXXZ()
7ff69b1647fa    mysqld.exe!?my_abort@@YAXXZ()
7ff69b3aca99    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()
7ff69b41a27e    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()
7ff69b41fbfb    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()
7ff69b4cbf33    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()
7ff69b54fe8b    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()
7ff69b54f9f1    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()
7ff69b52ceef    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()
7ff69b52d503    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()
7ff69b4c56f3    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()
7ff69b4c5024    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()
7ff69b4c4e1c    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()
7ff69b3fefea    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()
7ff69b3ff83a    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()
7ff69b3ff5d8    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()
7ff69b342b24    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()
7ff69b25082c    mysqld.exe!?set_compression_level@Zstd_comp@compression@transaction@binary_log@@UEAAXI@Z()
7ff69b0eb4b6    mysqld.exe!?init@Rpl_info_values@@QEAA_NXZ()
7ff69b0efbc6    mysqld.exe!?init@Rpl_info_values@@QEAA_NXZ()
7ff69b01df6e    mysqld.exe!?init@Rpl_info_values@@QEAA_NXZ()
7ff69b019542    mysqld.exe!?init@Rpl_info_values@@QEAA_NXZ()
7ff69a17d1fe    mysqld.exe!?run_bootstrap_thread@bootstrap@@YA_NPEBDPEAUMYSQL_FILE@@P6A_NPEAVTHD@@@ZW4enum_thread_type@@@Z()
7ff69b5b87a9    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()
7ff69b17139c    mysqld.exe!?my_thread_self_setname@@YAXPEBD@Z()
7ffccf7f6c0c    ucrtbase.dll!_recalloc()
7ffcd0f054e0    KERNEL32.DLL!BaseThreadInitThunk()
7ffcd228485b    ntdll.dll!RtlUserThreadStart()

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

http://dev.mysql.com/doc/mysql/en/crashing.html 中的手册页包含
有助于排查崩溃原因的信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:15:47