龙空技术网

MySQL | Table "table_name" is marked as crashed and should be repaired

嗨皮汪小成 19

前言:

今天同学们对“没有找到mysql服务”都比较重视,咱们都需要学习一些“没有找到mysql服务”的相关文章。那么小编也在网摘上收集了一些关于“没有找到mysql服务””的相关资讯,希望各位老铁们能喜欢,我们快快来了解一下吧!

今天接到用户反馈,系统查询数据时报错。看了服务器的日志文件,异常信息如下:

java.sql.SQLException: Table "your_table_name" is marked as crashed and should be repaired

出现这个问题,大部分数据查询是正常的,查询某些数据时会报错。

比如如下 SQL:

select * from jktj_gwtj order by id desc limit 200;

查询200条数据时是正常的,但是查询300条数据时就报上面的错误。

通过查询资料,说是出现这种问题的原因大多是因为服务器异常断电导致了。询问客户这两天服务器有没有异常断电,客户说是“有”。

修复这个问题笔者汪小成采用的如下方案:

1、找到错误表对应的索引文件,文件后缀名为.MYI。笔者汪小成的数据目录为C:\ProgramData\MySQL\MySQL Server 8.0\Data\jasmine,其中jasmine为数据库的名字。在此目录下找对error_talbe_name.MYI文件。

2、打开 CMD,进入 MySQL 安装目录的bin目录下,笔者的安装目录为C:\Program Files\MySQL\MySQL Server 8.0\bin

3、执行如下命令

$ myisamchk -r -f C:\ProgramData\MySQL\MySQL Server 8.0\Data\jasmine\error_talbe_name.MYI

4、修复成功后打开 Windows 服务列表,找到 MySQL 服务并重启。

至此,问题修复。

第3步修复命令,网上还提供了另外一种方式,命令如下:

$ mysqlcheck -u root -p your_database_name --auto-repair

这个命令就不在需要查找MYI文件的路径了,它会根据提供的数据库名,自动的遍历全部数据表。最后针对需要修复的表进行修复。

标签: #没有找到mysql服务 #mysqlasname