#145 - Table is marked as crashed and should be repaired
微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 的错误了。
解决方法
1、清除数据
我是这样解决的,但是你千万小心啊!
由于我遇到的发生错误的数据表是一个全文检索相关的数据表“enewssearchall”,清除了数据也无所谓的,但是你的表数据有用的话,千万不要这样做。
方法是通过phpmyadmin,选择数据库,然后找到出错的数据表,选择清除数据
2、使用myisamchk工具
找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:
myisamchk -c -r /home/tester/mysql_data/mysql/god/*.MYI #如果该数据库中全部表的索引都需要修复,则用星号代替就好了;
其中:/home/tester/mysql_data/mysql
为我存放数据的路径;
/god
为发生问题表的数据库名称tablename.MYI
为发生问题表的MYI文件
3、使用check table 语句
1、首先进入mysql命令台:
mysql -u root -p 回车 输入密码
2、查询所有的库
mysql> show databases;
3、进入数据库“eduyun_2015_sp1”是库名
mysql> use eduyun_2015_sp1;
4、check table newabout(newabout--出现错误的表)用来检查出现问题的表的状态,出现错误就正常
5、然后用repair table newabout
6、再用check table newabout 检查一下就ok了
4、使用Navicat客户端
在客户端的目标表上鼠标右键->维护->修复表->快速。
等一会就可以了。再次双击打开,就可以打开刚才被损坏的表。
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/service/2022-04-30/1168.html