记一次Mysql数据库宕机This could be because you hit a bug.

Hi I’m Shendi

今天收到消息说所有软件不能用了,网页都打不开,遇到了问题,于是在这里记录一下


记一次Mysql数据库宕机This could be because you hit a bug.




起因

为了节省成本,对于小公司而言服务器数量通常不会太多,而我这,就一台。

于是要将数据库、程序、所有的东西都放到这台服务器上,当然为了节省开销,容器也是没有使用的,所以这样就会导致,一个部位出错,整体瘫痪。

今天就遇到了这样的问题,是我还在睡梦中大抵是被电话闹醒,后面才看到十来个未接电话,简单地说就是告知我服务器挂了。

最近编写了一个新的 SpringBoot 程序,基于若依开发,放到服务器上偶然遇到了一次这样的问题 ——数据库宕机,当时不清楚什么情况,并且查找数据库日志也没有找到什么,猜测可能是误关数据库或者…所以就没有再管,就这样,我将数据库启动后,几天后,就是今天,问题又复现了。



环境描述

系统:windows server

数据库:Mysql


问题描述

因为我没有在 my.ini 中配置日志地址,那么默认是和data目录在一起的,我在数据库日志中找到了错误信息

11:08:34 UTC - mysqld got exception 0xc0000005 ;
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.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.

key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=49
max_threads=200
thread_count=48
connection_count=47
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 86998 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x9b37908c70
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...
7ff743231ce6    mysqld.exe!json_binary::parse_binary()[json_binary.cc:1082]
7ff7430b34c6    mysqld.exe!Field_json::val_json()[field.cc:7645]
7ff7430e692b    mysqld.exe!get_json_wrapper()[item_json_func.cc:822]
7ff74329ddf3    mysqld.exe!Table_function_json::fill_result_table()[table_function.cc:788]
7ff743253297    mysqld.exe!join_materialize_table_function()[sql_executor.cc:2652]
7ff7432540fb    mysqld.exe!QEP_TAB::prepare_scan()[sql_executor.cc:1576]
7ff743257936    mysqld.exe!sub_select()[sql_executor.cc:1438]
7ff743250589    mysqld.exe!do_select()[sql_executor.cc:1171]
7ff743252897    mysqld.exe!JOIN::exec()[sql_executor.cc:294]
7ff7430d35af    mysqld.exe!subselect_single_select_engine::exec()[item_subselect.cc:2954]
7ff7430d2dde    mysqld.exe!Item_subselect::exec()[item_subselect.cc:772]
7ff7430d8c7b    mysqld.exe!Item_singlerow_subselect::val_int()[item_subselect.cc:1312]
7ff742f1ae27    mysqld.exe!Item::evaluate()[item.cc:6603]
7ff742f287d4    mysqld.exe!Item::update_null_value()[item.cc:6556]
7ff7430d490e    mysqld.exe!Item_subselect::is_null()[item_subselect.h:185]
7ff742e96e57    mysqld.exe!Item_func_isnotnull::val_int()[item_cmpfunc.cc:5277]
7ff742f4292c    mysqld.exe!eval_const_cond()[item_func.cc:153]
7ff7430fa0ee    mysqld.exe!internal_remove_eq_conds()[sql_optimizer.cc:9418]
7ff7430f9d55    mysqld.exe!internal_remove_eq_conds()[sql_optimizer.cc:9295]
7ff7430f9d55    mysqld.exe!internal_remove_eq_conds()[sql_optimizer.cc:9295]
7ff7430ff8bc    mysqld.exe!remove_eq_conds()[sql_optimizer.cc:9504]
7ff7430fd478    mysqld.exe!optimize_cond()[sql_optimizer.cc:9260]
7ff7430fc455    mysqld.exe!JOIN::optimize()[sql_optimizer.cc:295]
7ff7430c0d26    mysqld.exe!SELECT_LEX::optimize()[sql_select.cc:1483]
7ff7430bdb9f    mysqld.exe!Sql_cmd_dml::execute_inner()[sql_select.cc:640]
7ff7430bd9a6    mysqld.exe!Sql_cmd_dml::execute()[sql_select.cc:554]
7ff743022d38    mysqld.exe!mysql_execute_command()[sql_parse.cc:4147]
7ff743023816    mysqld.exe!mysql_parse()[sql_parse.cc:4927]
7ff74301d6b8    mysqld.exe!dispatch_command()[sql_parse.cc:1607]
7ff74301e5e5    mysqld.exe!do_command()[sql_parse.cc:1233]
7ff742e9c538    mysqld.exe!handle_connection()[connection_handler_per_thread.cc:308]
7ff743fc3e87    mysqld.exe!pfs_spawn_thread()[pfs.cc:2839]
7ff743bdb1dc    mysqld.exe!win_thread_start()[my_thread.cc:52]
7ffba9f2f4a0    ucrtbase.DLL!_o__realloc_base()
7ffbbb5c13f2    KERNEL32.DLL!BaseThreadInitThunk()
7ffbbd9d54f4    ntdll.dll!RtlUserThreadStart()

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (9b3424c5b8): select count(0) from ( 
SELECT * FROM table WHERE state!=2      AND pqid=105      AND hasimg=0     AND (type!=2 OR (select 1 from JSON_TABLE(param,  '$.answer[*]' COLUMNS( content VARCHAR(512) PATH '$.content', isCorrect BOOLEAN PATH '$.isCorrect' ) ) AS jt WHERE jt.isCorrect=TRUE AND jt.content='姝g‘') IS NOT NULL)
 ) tmp_count
Connection ID (thread ID): 8026
Status: NOT_KILLED

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.

这也是我头一次遇到这种情况,错误信息也没有更详细的说明了,或许是我不会看,其中只有一个程序中的SQL语句,这个语句也是我第一次使用 JSON_TABLE,所以问题基本上就是这里了,可能是这种复杂的语句使内存占用过多导致宕机,而我的数据格式使用的JSON,又不好更改,没有找到解决办法。

我在 Windows 事件管理器中看到了 mysqld 的错误事件,如下

在这里插入图片描述



解决办法

没有找到解决办法,但这个问题总得解决,首先问题可能是内存不够,于是将内存想办法增加,其次可能还会继续遇到数据库宕机的问题,既然无法避免,那么就增加一个定时任务,隔一段时间启动数据库,这样即使宕机了也能在一定时间内恢复,而在Windows中,可以直接增加定时任务,最快是1分钟一次,这里同样记录下方法


  1. 编写启动脚本,xxx.bat,内容为

    net start mysql
    
  2. 打开任务计划程序,可以按win+R输入taskschd.msc回车打开

  3. 任务计划程序库中,右键创建任务,输入名称描述等

  4. 点击触发器,新建,开始任务可以选择按预定计划或者发生事件时最好建两个触发器,将两个都弄上,事件id是1000,按预定计划需要勾选重复任务间隔,例如一分钟,持续一天,而上面的设置每隔一天一次

  5. 操作中新建,程序和脚本选择最开始编写的脚本即可。



总结

  1. 在实际使用中对于复杂的结构应避免JSON字段的使用,否则就会像我这样,为了实现某个需求不得不使用JSON_TABLE又出现宕机的问题。
  2. 挂个脚本当程序挂掉后自动重启,增加保障,减少负面影响。



END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/549453.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络安全学习路线-超详细

零基础小白,到就业!入门到入土的网安学习路线! 在各大平台搜的网安学习路线都太粗略了。。。。看不下去了! 建议的学习顺序: 一、网络安全学习普法(心里有个数,要进去坐几年!&#x…

FRDM-MCXN947开发板之RGB灯

一、背景 RGB LED:通过红、绿、蓝三种颜色组合发光的LED,可以理解由三个不同发光属性的LED组成,这个是LCD平板显示原理的基础,一个LED相当于屏幕上面的一个像素 FRDM-MCXN947集成了一块RGB LED,它由三个GPIO口驱动&am…

2024 NTFS读写工具Tuxera NTFS for Mac 是如何进行下载、安装、激活的

本篇将为各位小伙伴们集中讲解一下NTFS读写工具Tuxera NTFS for Mac 是如何进行下载、安装、激活与换机的。 在数字化时代,数据交换和共享变得日益重要。然而,对于Mac用户来说,与Windows系统之间的文件交换可能会遇到一些挑战。这是因为Mac …

【Markdown】调整图片大小和对齐方式

插入图片 使用HTML: <img src"./xxx.png" width "xxx" height "xxx" />比如说我们插入一个图片&#xff0c;系统会自动帮我们生成一个图片链接 把这段链接插入即可 <img src"https://img-blog.csdnimg.cn/direct/66da1f6404…

大模型日报|今日必读的10篇大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.谷歌推出新型 Transformer 架构&#xff1a;反馈注意力就是工作记忆 虽然 Transformer 给深度学习带来了革命性的变化&#xff0c;但二次注意复杂性阻碍了其处理无限长输入的能力。 谷歌研究团队提出了一种新型 T…

《自动机理论、语言和计算导论》阅读笔记:p225-p260

《自动机理论、语言和计算导论》学习第 9 天&#xff0c;p225-p260总结&#xff0c;总计 26 页。 一、技术总结 1.pushdown automation(PDA&#xff0c;下推自动机) 2.DPDA Deterministic PDA(确定性下推自动机)。 二、英语总结 1.instantaneous (1)instant: adj. happi…

苹果电脑启动磁盘是什么意思 苹果电脑磁盘清理软件 mac找不到启动磁盘 启动磁盘没有足够的空间来进行分区

当你一早打开苹果电脑&#xff0c;结果系统突然提示&#xff1a; “启动磁盘已满&#xff0c;需要删除部分文件”。你会怎么办&#xff1f;如果你认为单纯靠清理废纸篓或者删除大型文件就能释放你的启动磁盘上的空间&#xff0c;那就大错特错了。其实苹果启动磁盘的清理技巧有很…

app测试系列-超详细的app测试攻略,一文带你学会移动端测试

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

模板初阶的学习

目录&#xff1a; 一&#xff1a;泛型模板 二&#xff1a;函数模板 三&#xff1a;类模板 1&#xff1a;泛型模板 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 以交换函数为列进行讲解&#xff1a; void Swap(…

【C++对于C语言的扩充】函数重载、引用以及内联函数

文章目录 &#x1f680;前言&#x1f680;函数重载注意&#xff1a;✈️为什么C可以实现函数重载&#xff0c;而C语言却不行呢&#xff1f; &#x1f680;引用✈️引用的特性✈️C中为什么要引入引用✈️引用与指针的区别 &#x1f680;内联函数✈️内联函数特性 &#x1f680;…

Python 序列化与反序列化

目录 1、基本概念 2、JSON模块 2.1、dumps() 与 loads() 函数 2.2、dump() 与 load() 函数 2.3、bool 、None 类型的序列化与反序列化 3、pickle模块 3.1、dumps() 与 loads() 函数 3.2、dump() 与 load() 函数 1、基本概念 说明&#xff1a;通过文件操作&#xff0c;…

移动硬盘盒支持PD充电:优势解析与实际应用探讨

随着科技的飞速发展&#xff0c;数据存储和传输的需求日益增长&#xff0c;移动硬盘盒作为便携式存储设备的重要载体&#xff0c;其功能和性能也在不断提升。近年来&#xff0c;越来越多的移动硬盘盒开始支持PD&#xff08;Power Delivery&#xff09;充电技术&#xff0c;这一…

案例研究|众乐邦将MeterSphere持续测试平台融入DevOps流水线

众乐邦网络科技有限公司&#xff08;以下简称为“众乐邦”&#xff09;是一家企业服务公司。其旗下的众乐邦灵活用工数字化薪税管理平台&#xff08;以下简称为灵活用工管理平台&#xff09;&#xff0c;以财税服务视角切入灵活用工场景&#xff0c;连接企业、灵活就业者和监管…

平台系统的微信支付服务突然不可用问题记录

背景 我们平台系统的微信支付突然不可用&#xff0c;用户点击支付都提示错误“系统繁忙”。 排查 查看日志&#xff0c;发现“支付聚合服务”调用“微信支付服务”的http请求返回read timeout&#xff0c;问题很显然出在“微信支付服务”。http请求报read timeout&#xff0…

全球顶级的低代码开发平台,你知道几个?

什么是低代码开发平台? 低码开发平台是一个应用程序,提供图形用户界面编程,从而以非常快的速度开发代码,减少了传统的编程工作。 这些工具有助于快速开发代码,最大限度地减少手工编码的努力。这些平台不仅有助于编码,而且还能快速安装和部署。 低码开发工具的好处 低代码平…

【JavaSE】你真的了解内部类吗?

前言 本篇会详细讲解内部类的四种形式&#xff0c;让你掌握内部类~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 内部类介绍 实例内部类 定义 调用 静态内部类 定义 调用 匿名内部类 定义和调用1 调用方法2 …

vs2019 - detected memory leak

文章目录 vs2019 - detected memory leak概述笔记vs2019 consolevs2019 MFC Dlg但是&#xff0c;工程大了之后&#xff0c;VS2019提示的就变了样整好的内存泄漏侦测头文件和实现my_debug_new_define.hmy_debug_new_define.cpp在所有.cpp文件入口处包含my_debug_new_define.h包含…

计算机系列之操作系统的系统

2、大话操作系统的启动 当按下开机键时&#xff0c;BIOS 就会开始执行 ​ BIOS 就是放在主板上 ROM 里面的一段程序。 ​ ROM Read Only Memory&#xff08;只能读取的内存&#xff09; ​ 所以 BIOS 在出厂的时候就可以直接写死在 ROM 里面。 ​ 每次开机的时候&#xff…

【数据结构与算法】之双向链表及其实现!

​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ 数据结构与算法 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 目录 1、双向链表的结构及概念 2、双向链表的实现 2.1 要实现的接口…

Mac版2024 CleanMyMac X 4.15.2 核心功能详解 cleanmymac这个软件怎么样?cleanmymac到底好不好用?

近些年伴随着苹果生态的蓬勃发展&#xff0c;越来越多的用户开始尝试接触Mac电脑。然而很多人上手Mac后会发现&#xff0c;它的使用逻辑与Windows存在很多不同&#xff0c;而且随着使用时间的增加&#xff0c;一些奇奇怪怪的文件也会占据有限的磁盘空间&#xff0c;进而影响使用…
最新文章