影响版本 mysql 5.0 版本在5.0.70以下;mysql 5.1 版本在5.1.28 以下出现过程
影响版本 mysql 5.0 版本在5.0.70以下;mysql 5.1 版本在5.1.28 以下出现过程
/*create table*/ create table `certuserid` ( `certuserid` int(11) not null auto_increment, `userid` int(11) not null, `certificateid` int(11) not null, `usertypeid` int(11) not null, `createddatetime` datetime not null, primary key (`certuserid`) ) engine=myisam auto_increment=2 default charset=utf8 checksum=1 delay_key_write=1 row_format=dynamic /*insert*/ insert into certuserid ( userid, certificateid, usertypeid, createddatetime ) values ( 5, 7, 6, '20080903014257' ) /*select*/ select * from certuserid /*error code */ error code : 1194 table 'certuserid' is marked as crashed and should be repaired (0 ms taken)
错误消息:table 'certuserid' is marked as crashed and should be repaired
检查表提示: found too long record (26) at 0
修复表的时候提示
table op msg_type msg_text -------------- ------ -------- ---------------------------------------- auc.certuserid repair info wrong bytesec: 3- 0- 26 at 0; skipped auc.certuserid repair status operation failed
解决方法:去掉创建表的时候的 row_format=dynamic 错误解释(关联bug ?id=37310) problem: data consistency check (maximum record length) for a correct myisam table with checksum=1 and row_format=dynamic option may fail due to wrong inner myisam parameter. in result we may have the table marked as 'corrupted'. fix: properly set myisam maximum record length parameter.
,