一个令人头疼的错误:can't open **.MYD , error 126 126 = Index file is crashed / Wrong file format建议选重启MySQL服务,一般来说,服务重启后可能解决一些问题,如果还不行的话,请需要用MySQL自带的几个修复工具了,呵呵,:》试试再说吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像是表坏了,修表吧!数据表的修复作者:bombshell日期:2002-01-01注意:在修复表之前要拷贝他们,注意备份,切记!1.标准的表修复 a.试着用 --recover选项修复表,可以加上 --quick选项试图只根据索引的内容进行修复,这样做不触及数据文件。 % myisamchk --recover --quick table_name or % isamchk --recover --quick table_name b.如果问题还存在,在试一下上一步命令,但是要忽略 --quick选项,这样允许修改数据文件。 % myisamchk --recover table_name or % isamchk --recover table_name c.如果还不工作,试一下 --safe-recover 修复方法。但这种方法比普通方法要慢,但能修复 --recover不能修复的问题。 % myisamchk --safe-recover table_name or % isamchk --safe-recover table_name如果在myisamchk or isamchk 由于一个"can't create new temp file:file_name"的错误消息在任何一步停止,应该重复该命令并加入 --force选项强迫清除临时文件。2.如果标准修复失败这样做 a.定位到包含崩溃表的数据库目录中。 b.将该表的数据文件移到安全的地方。 c.调用mysql并通过执行下列语句重新创建新的空表,该语句使用表的描述文件 tbl_name.frm重新开始生成新的数据和索引文件。 mysql>delete from tbl_name; d.退出mysql,将原始的数据文件移回到数据目录中,替换刚建的新的空文件。 e.在世这样用标准修复方法。为了修复表的描述文件,可先从备份文件中恢复,然后再用标准修复方法。如果由于某些原因没有备份,如果知道create table 语句,仍然可以恢复该文件:a.定位到包含崩溃表的数据库目录中。b.将该表的数据文件移到安全的地方。如果想使用用索引的话,还需要把索引文件移走。c.调用mysql 发布create table 语句重建表。d.退出mysql,将原始的数据文件移回到数据目录中,替换刚才新建的数据文件。如果在第2不中移动了索引文件,则也要讲起移回到数据库目录中。e.在尝试标准表修复方法。以上方法针对mysql有效,请大家注意。 谢谢楼上两位,现在问题关键是,此错误是在我的应用服务程序中产生的即:我有一个服务程序在访问mysql数据库的一些表,而且表的此错误在我的应用中是严重错误!我想到是什么原因导致此错误?怎样才能避免? 按说每秒800次都没问题啊 而且还是一个康柏笔记本而已 我看的www.innodb.com上那个测试报告来着。 呵呵,那就升到MySQL 3.23.54MySQL 4.0.6在它的官方网站上说这两个版本在安全与稳定上有了重要改变 请教高手SQL递归问题 mysql 集群,应用程序应该怎么样连接 关于PostgreSQL性能优化的问题 Union + Left Join 新手求助SQL老手 如何读取blob字段的值 急急急.WIN2003下安装了MYSQL却无法访问 一次查询语句 更新,或者插入 求助:同字段多条件的查找 请教一个全文索引的问题 这语句复杂吗?求指导,好像很复杂的样子,写了一天写不出来 在win2000下如何安装配置使用mysql? 有没有unix下可以用的ODBC?
数据表的修复
作者:bombshell
日期:2002-01-01注意:在修复表之前要拷贝他们,注意备份,切记!1.标准的表修复
a.试着用 --recover选项修复表,可以加上 --quick选项试图只根据索引的内容进行修复,这样做不触及数据文件。
% myisamchk --recover --quick table_name
or
% isamchk --recover --quick table_name
b.如果问题还存在,在试一下上一步命令,但是要忽略 --quick选项,这样允许修改数据文件。
% myisamchk --recover table_name
or
% isamchk --recover table_name
c.如果还不工作,试一下 --safe-recover 修复方法。但这种方法比普通方法要慢,但能修复 --recover不能修复的问题。
% myisamchk --safe-recover table_name
or
% isamchk --safe-recover table_name
如果在myisamchk or isamchk 由于一个"can't create new temp file:file_name"的错误消息在任何一步停止,应该重复该命令并
加入 --force选项强迫清除临时文件。2.如果标准修复失败这样做
a.定位到包含崩溃表的数据库目录中。
b.将该表的数据文件移到安全的地方。
c.调用mysql并通过执行下列语句重新创建新的空表,该语句使用表的描述文件
tbl_name.frm重新开始生成新的数据和索引文件。
mysql>delete from tbl_name;
d.退出mysql,将原始的数据文件移回到数据目录中,替换刚建的新的空文件。
e.在世这样用标准修复方法。为了修复表的描述文件,可先从备份文件中恢复,然后再用标准修复方法。
如果由于某些原因没有备份,如果知道create table 语句,仍然可以恢复该文件:
a.定位到包含崩溃表的数据库目录中。
b.将该表的数据文件移到安全的地方。如果想使用用索引的话,还需要把索引文件移走。
c.调用mysql 发布create table 语句重建表。
d.退出mysql,将原始的数据文件移回到数据目录中,替换刚才新建的数据文件。如果在第2不中移动了索引文件,则也要讲起移回到数据库目录中。
e.在尝试标准表修复方法。以上方法针对mysql有效,请大家注意。
即:我有一个服务程序在访问mysql数据库的一些表,而且表的此错误在我的
应用中是严重错误!我想到是什么原因导致此错误?怎样才能避免?
MySQL 3.23.54
MySQL 4.0.6在它的官方网站上说这两个版本在安全与稳定上有了重要改变