运维日志您现在的位置是:首页 > 博客日志 > 运维日志

#145 - Table is marked as crashed and should be repaired

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-04-30运维日志 3 0关键字: mysql  Table  Navicat  myisamchk  

在修改mysql的全文检索最小关键词长度 ft_min_word_len 后,有数据表出现Table is marked as crashed and should be repaired的情况。表被标记为损坏,需要修复。

帝国cms全文搜索很多内容搜索不出来,总是出现“没有搜索到相关内容”,在网上找到一个方法是修改mysql的全文检索最小关键词长度 ft_min_word_len,修改之后重启mysql,然后就提示#145 - Table  is marked as crashed and should be repaired 的错误了。Y9f无知


Y9f无知

解决方法

1、清除数据

我是这样解决的,但是你千万小心啊!Y9f无知

由于我遇到的发生错误的数据表是一个全文检索相关的数据表“enewssearchall”,清除了数据也无所谓的,但是你的表数据有用的话,千万不要这样做。Y9f无知

方法是通过phpmyadmin,选择数据库,然后找到出错的数据表,选择清除数据Y9f无知

image.pngY9f无知

image.pngY9f无知

2、使用myisamchk工具

Y9f无知

找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:Y9f无知

myisamchk -c -r /home/tester/mysql_data/mysql/god/*.MYI
#如果该数据库中全部表的索引都需要修复,则用星号代替就好了;

其中:
/home/tester/mysql_data/mysql为我存放数据的路径;Y9f无知

/god为发生问题表的数据库名称
tablename.MYI为发生问题表的MYI文件Y9f无知

3、使用check table 语句

Y9f无知

1、首先进入mysql命令台:Y9f无知


Y9f无知

mysql -u root -p 回车  输入密码Y9f无知


Y9f无知

2、查询所有的库Y9f无知


Y9f无知

mysql> show databases; Y9f无知


Y9f无知

3、进入数据库“eduyun_2015_sp1”是库名Y9f无知


Y9f无知

mysql> use eduyun_2015_sp1;Y9f无知


Y9f无知

4、check table newabout(newabout--出现错误的表)用来检查出现问题的表的状态,出现错误就正常Y9f无知


Y9f无知

5、然后用repair table newaboutY9f无知


Y9f无知

6、再用check table newabout 检查一下就ok了Y9f无知


Y9f无知

4、使用Navicat客户端

Y9f无知

在客户端的目标表上鼠标右键->维护->修复表->快速。
Y9f无知


Y9f无知

等一会就可以了。再次双击打开,就可以打开刚才被损坏的表。Y9f无知



Y9f无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/service/2022-04-30/1168.html

很赞哦! () 有话说 ()