我在 Windows Server 2016 1607(在 ESX 环境中)上使用 MySQL 8.0.24,并且总是使用相同的存储过程调用定期发生一些 MySQL 崩溃(MySQL 服务停止);上周,我使用的是 8.0.23 版本的 MySQL,并且遇到了相同的问题,但有另一个存储过程调用(过程由 C# 通过 MySQL .Net Connector 8.0.23 调用)。
重要信息:我有一个名为 cube 的数据库(这是一个 MySQL 关键字,但它不在我使用的以前的 MySQL 版本:MySQL 5 中),并且我无法重命名它(很多其他数据库都使用此数据库) ,带有“cube.”引用)
我无法明确地重现该错误(但是,它每天会发生多次)。
下面是错误MySQL日志内容:
09:27:05 UTC - mysqld got exception 0xc0000005 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x1e66537b080
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...
7ff716848699 mysqld.exe!?walk@Unique@@QEAA_NP6AHPEAXI0@Z0@Z()
7ff716978922 mysqld.exe!?val_str@Item_func_group_concat@@UEAAPEAVString@@PEAV2@@Z()
7ff716656bd9 mysqld.exe!?cache_value@Item_cache_str@@UEAA_NXZ()
7ff716851b92 mysqld.exe!?send_data@Query_result_scalar_subquery@@UEAA_NPEAVTHD@@AEBV?$mem_root_deque@PEAVItem@@@@@Z()
7ff716909a30 mysqld.exe!?ExecuteIteratorQuery@Query_expression@@QEAA_NPEAVTHD@@@Z()
7ff71690b0d6 mysqld.exe!?execute@Query_expression@@QEAA_NPEAVTHD@@@Z()
7ff71684d91d mysqld.exe!?exec@SubqueryWithResult@@QEAA_NPEAVTHD@@@Z()
7ff71684d88e mysqld.exe!?exec@Item_subselect@@UEAA_NPEAVTHD@@@Z()
7ff716854357 mysqld.exe!?val_str@Item_singlerow_subselect@@UEAAPEAVString@@PEAV2@@Z()
7ff7166e46de mysqld.exe!?val_str@Item_func_conv_charset@@UEAAPEAVString@@PEAV2@@Z()
7ff7165d4287 mysqld.exe!?val_str@Item_func_case@@UEAAPEAVString@@PEAV2@@Z()
7ff716656bd9 mysqld.exe!?cache_value@Item_cache_str@@UEAA_NXZ()
7ff71665f0cb mysqld.exe!?has_value@Item_cache@@QEAA_NXZ()
7ff71666c7ae mysqld.exe!?val_str@Item_cache_str@@UEAAPEAVString@@PEAV2@@Z()
7ff716698727 mysqld.exe!?val_int@Item_func_find_in_set@@UEAA_JXZ()
7ff7165c19ff mysqld.exe!?compare_int_signed@Arg_comparator@@QEAAHXZ()
7ff7165d3436 mysqld.exe!?val_int@Item_func_ne@@UEAA_JXZ()
7ff71666a0ed mysqld.exe!?val_bool@Item@@UEAA_NXZ()
7ff7165d217e mysqld.exe!?val_int@Item_cond_and@@UEAA_JXZ()
7ff716a7170d mysqld.exe!?Read@FilterIterator@@UEAAHXZ()
7ff716a71031 mysqld.exe!?Read@AggregateIterator@@UEAAHXZ()
7ff7169099e8 mysqld.exe!?ExecuteIteratorQuery@Query_expression@@QEAA_NPEAVTHD@@@Z()
7ff71690b0d6 mysqld.exe!?execute@Query_expression@@QEAA_NPEAVTHD@@@Z()
7ff71684d91d mysqld.exe!?exec@SubqueryWithResult@@QEAA_NPEAVTHD@@@Z()
7ff71684d88e mysqld.exe!?exec@Item_subselect@@UEAA_NPEAVTHD@@@Z()
7ff716854357 mysqld.exe!?val_str@Item_singlerow_subselect@@UEAAPEAVString@@PEAV2@@Z()
7ff7166666bb mysqld.exe!?send@Item@@UEAA_NPEAVProtocol@@PEAVString@@@Z()
7ff71662f65a mysqld.exe!?send_result_set_row@THD@@QEAA_NAEBV?$mem_root_deque@PEAVItem@@@@@Z()
7ff7169fe2a3 mysqld.exe!?send_data@Query_result_send@@UEAA_NPEAVTHD@@AEBV?$mem_root_deque@PEAVItem@@@@@Z()
7ff716909a30 mysqld.exe!?ExecuteIteratorQuery@Query_expression@@QEAA_NPEAVTHD@@@Z()
7ff71690b0d6 mysqld.exe!?execute@Query_expression@@QEAA_NPEAVTHD@@@Z()
7ff71683c201 mysqld.exe!?execute_inner@Sql_cmd_dml@@MEAA_NPEAVTHD@@@Z()
7ff71683c07b mysqld.exe!?execute@Sql_cmd_dml@@UEAA_NPEAVTHD@@@Z()
7ff716789a71 mysqld.exe!?mysql_execute_command@@YAHPEAVTHD@@_N@Z()
7ff7169b1118 mysqld.exe!?exec_core@sp_instr_stmt@@UEAA_NPEAVTHD@@PEAI@Z()
7ff7169b351b mysqld.exe!?reset_lex_and_exec_core@sp_lex_instr@@AEAA_NPEAVTHD@@PEAI_N@Z()
7ff7169b3c95 mysqld.exe!?validate_lex_and_execute_core@sp_lex_instr@@QEAA_NPEAVTHD@@PEAI_N@Z()
7ff7169b15b4 mysqld.exe!?execute@sp_instr_stmt@@UEAA_NPEAVTHD@@PEAI@Z()
7ff716747b19 mysqld.exe!?execute@sp_head@@AEAA_NPEAVTHD@@_N@Z()
7ff716748b8b mysqld.exe!?execute_procedure@sp_head@@QEAA_NPEAVTHD@@PEAV?$mem_root_deque@PEAVItem@@@@@Z()
7ff716a68659 mysqld.exe!?execute_inner@Sql_cmd_call@@MEAA_NPEAVTHD@@@Z()
7ff71683c07b mysqld.exe!?execute@Sql_cmd_dml@@UEAA_NPEAVTHD@@@Z()
7ff716789a71 mysqld.exe!?mysql_execute_command@@YAHPEAVTHD@@_N@Z()
7ff716784c2f mysqld.exe!?dispatch_sql_command@@YAXPEAVTHD@@PEAVParser_state@@@Z()
7ff716783a4c mysqld.exe!?dispatch_command@@YA_NPEAVTHD@@PEBTCOM_DATA@@W4enum_server_command@@@Z()
7ff71678500e mysqld.exe!?do_command@@YA_NPEAVTHD@@@Z()
7ff7165d64a8 mysqld.exe!?modify_thread_cache_size@Per_thread_connection_handler@@SAXK@Z()
7ff7179edbe1 mysqld.exe!?set_compression_level@Zstd_comp@compression@transaction@binary_log@@UEAAXI@Z()
7ff7175d1d1c mysqld.exe!?my_thread_join@@YAHPEAUmy_thread_handle@@PEAPEAX@Z()
7ff936a4fb80 ucrtbase.dll!_o__realloc_base()
7ff937ca84d4 KERNEL32.DLL!BaseThreadInitThunk()
7ff93a421781 ntdll.dll!RtlUserThreadStart()
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (1e602cf1038): select ...
预先感谢您的帮助。
我发生查询时
(如果不使用 DISTINCT,它会返回空行。)
我认为这是一个错误。 这是 mysql 8 上的新行为。它在版本 5 上很好。
这是一个引擎错误(错误#36492114),并通过此提交在 8.4.3 中修复。 https://github.com/mysql/mysql-server/commit/0f8002cf6ae
这里是发行说明https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-3.html.