Mysql - is marked as crashed and should be repaired

概述

上周发生了一个Mysql报错的问题,今天有时间整理一下产生的原因和来龙去脉,Mysql的版本是5.5,发生错误的表存储引擎都是MyISAM,产生的报错信息是Table 'xxxxxx' is marked as crashed and should be repaired

定位问题

产生的后果是Nginx服务没有响应,找到Mysql的进程,想做的是查找到mysql的错误日志路径,查看错误信息,错误信息里的关键词是定位问题、解决错误的有效手段。

在多说一句Linux服务器中的进程管理,使用 ps aux里面主要留意的信息是PID、进程所属用户和后面启动进程所执行的Bash命令。

ps aux | grep mysql

mysql    17743  4.7 33.1 3722028 2604540 ?     Sl   3月01 338:55 
/usr/local/mysql/libexec/mysqld 
--defaults-file=/usr/local/mysql/etc/my.cnf 
--basedir=/usr/local/mysql 
--datadir=/usr/local/mysql/data 
--plugin-dir=/usr/local/mysql/lib/mysql/plugin 
--user=mysql 
--log-error=/usr/local/mysql/var/mysql_error.log 
--open-files-limit=10240 
--pid-file=/usr/local/mysql/var/mysql.pid 
--socket=/tmp/mysql.sock 
--port=3306
  • 配置文件路径: --defaults-file /usr/local/mysql/etc/my.cnf
  • Mysql文件路径: --basedir /usr/local/mysql
  • Mysql数据报错路径: --datadir /usr/local/mysql/data
  • Mysql错误日志 --log-error /usr/local/mysql/var/mysql_error.log

使用 tail -f -n 20 /usr/local/mysql/var/mysql_error.log 观测错误信息,如果想让log的行数展示的多些,可以指定最后行数,例如想展示20行,tail -f -n 20 /usr/local/mysql/var/mysql_error.log,报错消息如下图:

请在此添加图片描述

成因

网上查了一下,错误的产生原因,有网友说是频繁查询和更新表造成的索引错误,还有说法是Mysql数据库因某种原因而受到了损坏,如:数据库服务器突发性断电,在数据表提供服务时对表的源文件进行某种操作都有可能导致,Mysql数据表被损坏而无法读取数据,总之就是因为某些不可测的问题造成表的损坏。

我个人估计是没有正确编写和使用代码导致的,出现问题的表都是MyISAM存储引擎。

解决办法

命令行方式

1、登录,切换到error的数据库上:

mysql -u root -p

use cc;

2、检查出现问题的表的状态

check table cc_user_area;

3、修复表(table_name 需要修复的表名)

repair table table_name

4.检查一下状态,如下图

check table cc_user_address;

请在此添加图片描述

Navcat

还有一种更为便捷的方法,使用Navicat来处理,首先连接上数据库,选择表,右键->Maintain(维护)->Repair Tables(修复表)->Extended(扩展)

请在此添加图片描述

修复就完成了,服务也正常使用了,有时候需要规范的编码,才不会出现奇奇怪怪的问题。

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

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

相关文章

MT6771 android13 自定义背光曲线

一. Android系统源码中的参数配置 MTK6771平台自己重写了背光曲线的参数,路径在s0_vnd/vendor/mediatek/proprietary/packages/overlay/vendor/FrameworkResOverlayExt/brightness_adaptive_support/res/values/config.xml 不过MTK的其他平台可能不是在这个路径 来看…

Linux Ubuntu部署SVN服务端结合内网穿透实现客户端公网访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

WordPress建站入门教程:如何上传安装WordPress主题?

我们成功搭建WordPress网站后,默认使用的是自带的最新主题,但是这个是国外主题,可能会引用一些国外的资源文件,所以为了让我们的WordPress网站访问速度更快,强烈建议大家使用国产优秀的WordPress主题。 今天boke112百…

javascript中字符串处理,常用的方法汇总

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属专栏:前端泛海 景天的主页:景天科技苑 文章目录 字符串对象的的相关方法1.获取字符串长度 length2.通过索引获取元素 …

让娃学习效率更高的“可视化”时间管理器

如果要问,老母亲在娃开学后,蕞着急孩子哪一种坏习惯,那时间管理肯定榜上有名! 做作业的时候,才写了5分钟,已经没有耐心了,东摸摸西看看,一会说肚子疼想上厕所,一会又拿出…

Linux中线程的实现,线程的接口相关函数pthread_create、pthread_join、pthread_exit

目录 一.线程的概念 二.操作系统中线程的实现 三.Linux中线程的实现 四.进程与线程的区别 五.线程的接口相关函数 5.1 pthread_create 5.2 pthread_join 5.3 pthread_exit 六.代码演示 七.如何解决上述问题? 方案1. 方案2. 方案3. 一.线程的概念 进程是…

【数据结构】矩阵的压缩存储

矩阵的压缩存储 5.1 普通矩阵的存储 用二维数组存储 分为行优先和列优先: 行优先:优先存放一行的数据。 列优先:优先存放一列的数据。 注意下标是从0还是1开始的! 5.2 对称矩阵的存储 对称矩阵定义 若n阶方阵中任意一个元素 a i …

Allure小白下载安装

1、下载官网地址:https://github.com/allure-framework/allure2/releases 2、下载安装包后需要解压到一个非中文名称路径下 3、配置环境变量 D:\Allure\allure-2.27.0\bin 我的电脑右键选择属性,高级系统设置,环境变量 4、CMD查看安装all…

Java | Java的输入与输出

文章目录 Java输出1、System.out.println()2、System.out.printf()3、System.out.print() Java输入1、使用Scanner类的对象获取输入(1)一般类型输入(2)字符串类型输入(3)char类型输入 2、使用System.in.rea…

挑战杯 基于深度学习的目标检测算法

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…

Android APP性能指标(二)

文章目录 一、响应时间1.1 数据获取1.2 响应时间指标测试点1.3 启动速度测试点1.4 响应时间测试解决方法 二、流量2.1 数据获取2.2 流量测试关注点2.3 测试标准 三、电量3.1 连接手机3.2 数据获取3.3 获取APP的UID3.3 重置电池数据收集数据3.4 电量指标测试 四、温度五、性能测…

Pyaudio的安装以及报错解决

Pyaudio是一个可以用麦克风录入声音的库,但我在安装时发现无论是在cmd中pip安装还是在Pycharm中安装,都会报一堆错误。因此写一篇我最终的解决方案,我的解决办法是采用离线安装的方式,安装pyaudio库。 一.下载离线安装包 离线安…

超详细——动态内存分配+柔性数组

☃️个人主页:fighting小泽 🌸作者简介:目前正在学习C语言和数据结构 🌼博客专栏:C语言学习 🏵️欢迎关注:评论👊🏻点赞👍🏻留言💪&am…

意外之失:不小心删除的文件如何寻回?

一、瞬间消失的珍贵记忆 在我们的日常电脑使用中,总有一些时刻让人心惊胆战——那就是不小心删除了重要的文件。或许是一个珍藏多年的照片集,或许是一个即将完成的项目文档,这些文件承载着我们的回忆、努力和成果,却在一次疏忽之…

文本溢出隐藏 显示省略号,鼠标悬浮展示 el-tooltip(TooltipIsShowMixin封装)

目录 mixins 封装使用 TooltipIsShowMixin效果展示 mixins 封装 TooltipIsShowMixin.js export const TooltipIsShowMixin {data() {return {tooltipIsShow: false}},methods: {tooltipIsDisHandler(className) {this.$nextTick(() > {const dom document.querySelector…

m4a是什么文件格式?音质是无损吗?

m4a文件格式作为一种音频文件格式,源于MPEG-4标准的制定,该标准致力于提供高效的多媒体编解码方案。通常使用AAC编码,可以提供高质量的音频,但不是无损格式。AAC是一种有损压缩格式,它能够在减小文件大小的同时保持相对…

Jenkins 部署 RuoYi

目录 1、项目介绍 2、部署若依 clone 源代码 导入数据库到 node-16 修改 RuoYi 配置文件 推送 RuoYi 项目至 Gitlab 3、配置 Jenkins 配置本地 Maven Jenkins 配置 Maven 新建 Maven 项目 编写构建后的脚本 Jenkins 构建后执行脚本 4、Jenkins 传递参数 设置项目部…

Linux:kubernetes(k8s)探针的简介(7)

相当于我们用于监控容器的一个东西,通过给我们的不同探针来判断容器内的状态情况,实现故障的一个自动恢复。 我们在上一章的yaml文件中写入了一个这个东西 那么他什么情况下重启,就是通过探针进行一个监控,加入监控某一个端口&…

element多选框select下拉框数据回显的问题value.push is not a function

文章目录 问题描述 问题描述 今天在使用Element UI el-select组件遇到了一个问题,如下图: 下拉框里的值选中了,但是文本框里没有值 这是 el-select组件代码,我这里是用了一个多选框,options的值是在后端查询的,form.we…

利用MATLAB模拟点电荷的电场分布

一、实验目的: 1.熟悉点电荷的电场分布情况; 2.学会使用Matlab绘图; 二、实验内容: 1.根据库伦定律,利用Matlab强大的绘图功能画出单个点电荷的电场分布情况,包括电力…