教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql报错"is marked as crashed and should be repaired"的解决方法

mysql报错"is marked as crashed and should be repaired"的解决方法

发布时间:2015-11-12   编辑:jiaochengji.com
到mysql 安装目录 D:\database\MySQL5.0.45-3306\MySQL Server 5.0\bin 执行命令: myisamchk -c -r ../data/mjb/cms_session.MYI(cms_session 是表名)

到mysql 安装目录 D:\database\MySQL5.0.45-3306\MySQL Server 5.0\bin
执行命令: myisamchk -c -r ../data/mjb/cms_session.MYI(cms_session 是表名)

执行结果如下:
- recovering (with sort) MyISAM-table '../data/mjb/cms_session.MYI'
Data records: 27
- Fixing index 1
- Fixing index 2

Data records: 3

问题分析:
1、错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法。还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。
问题的编号为145

2、myisamchk工具介绍(见mysql的官方手册)
可以使用myisamchk实用程序来获得有关数据库表的信息或检查、修复、优化他们。myisamchk适用MyISAM表(对应.MYI和.MYD文件的表)。

调用myisamchk的方法:
shell> myisamchk [options] tbl_name ...
options指定你想让myisamchk做什么。在后面描述它们。还可以通过调用myisamchk --help得到选项列表。
tbl_name是你想要检查或修复的数据库表。如果你不在数据库目录的某处运行myisamchk,你必须指定数据库目录的路径,因为myisamchk不知道你的数据库位于哪儿。实际上,myisamchk不在乎你正在操作的文件是否位于一个数据库目录;你可以将对应于数据库表的文件拷贝到别处并且在那里执行恢复操作。

如果你愿意,可以用myisamchk命令行命名几个表。还可以通过命名索引文件(用“ .MYI”后缀)来指定一个表。它允许你通过使用模式“*.MYI”指定在一个目录所有的表。例如,如果你在数据库目录,可以这样在目录下检查所有的MyISAM表:
shell> myisamchk *.MYI

您可能感兴趣的文章:
mysql提示:Table ‘xxx’ is marked as crashed and should be repaired
fail1Table “.\xxx\xxx” is marked as crashed and should be repaired
mysql同步中断报错 [ERROR] Slave: Query caused different errors
掉电导致mysql innodb #145 错误解决解决
MYSQL is marked as crashed and should be repaired解决办法
mysql数据库表损坏的解决办法
mysql报错"is marked as crashed and should be repaired"的解决方法
Mysql数据库提示数据表损失问题修复解决办法
mysql中Incorrect key file for table: Try to repair it
一次非法关机造成mysql数据表损坏的例子

[关闭]
~ ~