Affected MySQL 5.0 versions earlier than 5.0.70; MySQL 5.1 versions earlier than 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, identifier, userTypeID, createdDatetime) VALUES (5, 7, 6, '123')/* SELECT */SELECT * FROM certuserid/* error code */Error Code: 1194 Table 'certuserid' is marked as crashed and shoshould be retried red (0 MS taken)
Error message: Table 'certuserid' is marked as crashed and shoshould be retried red
Tip: Found too long record (26) at 0
Prompt for table repair
Table Op Msg_type Msg_text ------------ ------ normalized auc. certuserid repair info Wrong bytesec: 3-0-26 at 0; Skipped auc. certuserid repair status Operation failed
Solution: remove the ROW_FORMAT = DYNAMIC error explanation when creating the table (associated bug http://bugs.mysql.com/bug.php? Id = 37310) http://lists.mysql.com/commits/52560 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 'upted '. fix: properly set MyISAM maximum record length parameter.