Mysql错误:Table 'xxx'is marked as crashed and should be repaired 错误编号:145

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

问题分析:

1.是频繁查询和更新表造成的索引错误,因为页面没有静态生成,而是动态页面。


2.是MYSQL数据库因为某种原因而受到了损坏。


(如:数据库服务器突发性的断电、在数据库表提供服务时对表进行某种操作都有可能导致数据库表被损坏而无法读取数据,还有就是因为某些不可测的问题造成表的损坏。)



解决方法:(注:修复数据库前一定要备份数据!)
在修复表的时候,最好先作一下备份(此时一般用mysqldump已经无法备份了,把整个data目录复制出来吧),所以你需要两倍于原始表大小的硬盘空间。请确保在进行修复前你的硬盘空间还没有用完。

1.用 myisamchk 修复

举例说明:


数据库名:test
表名:test_member
myisamchk 工具路径:E:\wamp\bin\mysql\mysql5.1.36\bin\myisamchk.exe

开始 -> 运行 输入 cmd。

51413a1ea0918a78314e15c8.jpg

进入 myisamchk 工具修复,具体步骤如图。若执行后不行,请把 -c -r 改为 -c -f  强制修复。

597ecffb0f9b3be558ee90c9.jpg

2.使用 phpMyAdmin 修复

选择要修复的表,之后在下拉框里选择修复表。


40938d91c7186dffa877a446.jpg

3.用”repair table”方式修复
语法:repair table 表名 [选项]
选项如下:
QUICK 用在数据表还没被修改的情况下,速度最快
EXTENDED 试图去恢复每个数据行,会产生一些垃圾数据行,万般无奈的情况下用
USE_FRM 用在.MYI文件丢失或者头部受到破坏的情况下。利用.frm的定义来重建索引


多数情况下,简单得用”repair table tablename”不加选项就可以搞定问题。但是当.MYI文件丢失或者头部受到破坏时,这样的方式不管用,这时索引文件丢失或者其头部遭到了破坏,为了利用相关定义文件来修复,需要用USE_FRM选项。
4.用mysql内建命令mysqlcheck来修复
当mysql服务在运行时,也可以用mysql内建命令mysqlcheck来修复。
语法:mysqlcheck -r 数据库名 表名 -uuser -ppass

mysqlcheck -r sports_results mytable -uuser -ppass
sports_results.mytable OK

利用mysqlcheck可以一次性修复多个表。只要在数据库名后列出相应表名即可(用空格隔开)。或者数据库名后不加表名,将会修复数据库中的所有表,例如:
mysqlcheck -r sports_results mytable events -uuser -ppass
sports_results.mytable OK
sports_results.events OK

mysqlcheck -r sports_results -uuser -ppass
sports_results.mytable OK
sports_results.events OK


参考文献:

http://hi.baidu.com/rlaruddhr/item/8efb5c52af230adbd58bacd0

http://www.phpstudy.net/a.php/9.html











本文转自 艺晨光 51CTO博客,原文链接:http://blog.51cto.com/ycgit/1408625,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
存储 关系型数据库 MySQL
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表【1月更文挑战第16天】【1月更文挑战第78篇】
215 3
|
6月前
|
Oracle 关系型数据库 MySQL
MySQL复制表结构create table as与like的区别
MySQL复制表结构create table as与like的区别
|
3月前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
185 0
|
5月前
|
关系型数据库 MySQL
MySQL 报错 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file
MySQL 报错 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file
378 0
|
4月前
|
JSON 关系型数据库 MySQL
这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
【1月更文挑战第17天】【1月更文挑战第84篇】这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
34 1
|
6月前
|
关系型数据库 MySQL
MYSQL 不允许在子查询的同时删除原表数据的解决方法 specify target table
MYSQL 不允许在子查询的同时删除原表数据的解决方法 specify target table
63 0
|
6月前
|
关系型数据库 MySQL Shell
Mysql The table is full
Mysql The table is full
|
1天前
|
弹性计算 关系型数据库 MySQL
在线安装MySQL5.7和MySQL8.0
【4月更文挑战第30天】
8 0
|
1天前
|
存储 关系型数据库 MySQL
docker安装mysql8忽略大小写
docker安装mysql8忽略大小写
|
1天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感