已解决 MySQL停止运行

MySQL会自动停止运行,错误记录如下,有高手帮忙看一下的吗,谢谢


2022-08-22 19:05:00 0x38f0  InnoDB: Assertion failure in file D:\winx64-packages\build\src\storage\innobase\btr\btr0sea.cc line 1400

InnoDB: Failing assertion: index->id == btr_page_get_index_id(page)
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to https://jira.mariadb.org/
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: https://mariadb.com/kb/en/library/innodb-recovery-modes/
InnoDB: about forcing recovery.
220822 19:05:00 [ERROR] mysqld got exception 0x80000003 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.

To report this bug, see https://mariadb.com/kb/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed, 
something is definitely wrong and this may fail.

Server version: 10.4.14-MariaDB
key_buffer_size=16777216
read_buffer_size=2097152
max_used_connections=7
max_threads=65537
thread_count=7
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 32885 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x1b0b0adcef8
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
mysqld.exe!my_parameter_handler()
ucrtbase.dll!raise()
ucrtbase.dll!abort()
mysqld.exe!?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@QEBD_K@Z()
mysqld.exe!pthread_dummy()
mysqld.exe!pthread_dummy()
mysqld.exe!pthread_dummy()
mysqld.exe!pthread_dummy()
mysqld.exe!??$?0V?$tuple@AEBQEAU_iobuf@@@std@@V?$tuple@$$V@1@$0A@$$Z$S@?$pair@QEAU_iobuf@@PEAX@std@@QEAA@AEAV?$tuple@AEBQEAU_iobuf@@@1@AEAV?$tuple@$$V@1@U?$integer_sequence@_K$0A@@1@U?$integer_sequence@_K$S@1@@Z()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!??$?0V?$tuple@AEBQEAU_iobuf@@@std@@V?$tuple@$$V@1@$0A@$$Z$S@?$pair@QEAU_iobuf@@PEAX@std@@QEAA@AEAV?$tuple@AEBQEAU_iobuf@@@1@AEAV?$tuple@$$V@1@U?$integer_sequence@_K$0A@@1@U?$integer_sequence@_K$S@1@@Z()
mysqld.exe!??$?0V?$tuple@AEBQEAU_iobuf@@@std@@V?$tuple@$$V@1@$0A@$$Z$S@?$pair@QEAU_iobuf@@PEAX@std@@QEAA@AEAV?$tuple@AEBQEAU_iobuf@@@1@AEAV?$tuple@$$V@1@U?$integer_sequence@_K$0A@@1@U?$integer_sequence@_K$S@1@@Z()
mysqld.exe!??$?0V?$tuple@AEBQEAU_iobuf@@@std@@V?$tuple@$$V@1@$0A@$$Z$S@?$pair@QEAU_iobuf@@PEAX@std@@QEAA@AEAV?$tuple@AEBQEAU_iobuf@@@1@AEAV?$tuple@$$V@1@U?$integer_sequence@_K$0A@@1@U?$integer_sequence@_K$S@1@@Z()
mysqld.exe!pthread_dummy()
mysqld.exe!pthread_dummy()
KERNEL32.DLL!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x0): 
Connection ID (thread ID): 4
Status: NOT_KILLED

Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on

The manual page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mysqld/ contains
information that should help you find out what is causing the crash.
Writing a core file at D:\xampp\zbox\bin\mysql\data\
Minidump written to D:\xampp\zbox\bin\mysql\data\mysqld.dmp
InnoDB: using atomic writes.
禅道版本 17.5 源码包
操作系统 Windows 8.1
客户端浏览器 其他

提问者: Arno_zhong 悬赏: 5 日期: 2022-08-23 09:26:26 答案:1 点击:149
设置备注
答案列表
最佳答案
2022/08/23
修改zbox\etc\php\php.ini文件,在[mysqld]下面加上一行:
innodb_force_recovery = 1   (建议从1开始试,未成功再变成2、3、4)
然后保存my.ini,重启mysql


正常之后,再将innodb_force_recovery 改回0,重启mysql。

2022/08/24
是在my.ini还是在php.ini里添加呢?my.ini是在zbox\etc\mysql\my.ini里的?
2022/08/24
不好意思,写错了,是mysql的my.ini
2022/08/25
innodb_force_recovery 从1到4都有跑过,还是会停止,还请帮忙再看一下,谢谢!

InnoDB: Failing assertion: index->id == btr_page_get_index_id(page)
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to https://jira.mariadb.org/
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: https://mariadb.com/kb/en/library/innodb-recovery-modes/
InnoDB: about forcing recovery.
220825 16:25:10 [ERROR] mysqld got exception 0x80000003 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.

To report this bug, see https://mariadb.com/kb/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.

Server version: 10.4.14-MariaDB
key_buffer_size=16777216
read_buffer_size=2097152
max_used_connections=3
max_threads=65537
thread_count=7
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 32885 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x224d395cf48
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
mysqld.exe!my_parameter_handler()
ucrtbase.dll!raise()
ucrtbase.dll!abort()
mysqld.exe!?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@QEBD_K@Z()
mysqld.exe!pthread_dummy()
mysqld.exe!pthread_dummy()
mysqld.exe!pthread_dummy()
mysqld.exe!pthread_dummy()
mysqld.exe!??$?0V?$tuple@AEBQEAU_iobuf@@@std@@V?$tuple@$$V@1@$0A@$$Z$S@?$pair@QEAU_iobuf@@PEAX@std@@QEAA@AEAV?$tuple@AEBQEAU_iobuf@@@1@AEAV?$tuple@$$V@1@U?$integer_sequence@_K$0A@@1@U?$integer_sequence@_K$S@1@@Z()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!strmov()
mysqld.exe!??$?0V?$tuple@AEBQEAU_iobuf@@@std@@V?$tuple@$$V@1@$0A@$$Z$S@?$pair@QEAU_iobuf@@PEAX@std@@QEAA@AEAV?$tuple@AEBQEAU_iobuf@@@1@AEAV?$tuple@$$V@1@U?$integer_sequence@_K$0A@@1@U?$integer_sequence@_K$S@1@@Z()
mysqld.exe!??$?0V?$tuple@AEBQEAU_iobuf@@@std@@V?$tuple@$$V@1@$0A@$$Z$S@?$pair@QEAU_iobuf@@PEAX@std@@QEAA@AEAV?$tuple@AEBQEAU_iobuf@@@1@AEAV?$tuple@$$V@1@U?$integer_sequence@_K$0A@@1@U?$integer_sequence@_K$S@1@@Z()
mysqld.exe!??$?0V?$tuple@AEBQEAU_iobuf@@@std@@V?$tuple@$$V@1@$0A@$$Z$S@?$pair@QEAU_iobuf@@PEAX@std@@QEAA@AEAV?$tuple@AEBQEAU_iobuf@@@1@AEAV?$tuple@$$V@1@U?$integer_sequence@_K$0A@@1@U?$integer_sequence@_K$S@1@@Z()
mysqld.exe!pthread_dummy()
mysqld.exe!pthread_dummy()
KERNEL32.DLL!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x0):
Connection ID (thread ID): 2
Status: NOT_KILLED

Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on

The manual page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mysqld/ contains
information that should help you find out what is causing the crash.
Writing a core file at D:\xampp\zbox\bin\mysql\data\
Minidump written to D:\xampp\zbox\bin\mysql\data\mysqld.dmp
2022/08/25
更正一下:操作系统是wimdows10的
2022/08/26
联系下官网顶部商务QQ号,邀请加入技术交流群,群里沟通下。