Our backup software can run a shell script before it starts the
backups (and another script when they're finished); I use a script
that shuts mysql down and runs myisamchk.  Originally it was using

  myisamchk --safe-recover */*.MYI

Then I was eyeballing the online documentation for myisamchk and
decided to change it to

  myisamchk --safe-recover --extend-check --sort-index */*.MYI

On one of the machines this generated lots and lots of errors; lots of

  Found block with too small length at #####; Skipped

And several

  Found link that points at ########################## (outside data
  file) at ######

And several

  Found block that points outside data file at ######

One annoying thing is that myisamchk never fixed these problems; each
time we ran it the same errors were there.  We tried copying the db
files to a different machine with the latest version of mysql; no
cigar.

Then we tried dumping the database using mysqldump and then importing
that into a fresh database, ran the above myisamchk and even that
generated the *SAME ERRORS*!  No complaints whatsoever from mysql
during the import.

Then I started searching the mailing list archives and I noticed one
response by Widenius suggesting using a binary version from mysql.com
so I downloaded the mysql-3.23.47-sun-solaris2.8-sparc and installed
it, input the output from mysqldump, ran the above myisamchk; that
generated the *SAME ERRORS*!

Then I decided to eyeball the output of mysqldump and see if there was
anything suspicious looking.  It was mainly one of the tables that got
a lot of these errors.  Here's its definition from mysqldump:

CREATE TABLE time_edit (
  teid int(10) unsigned NOT NULL auto_increment,
  classid int(10) unsigned default NULL,
  empid int(11) default NULL,
  starttime int(10) unsigned default NULL,
  duration smallint(5) default NULL,
  facid tinyint(4) default NULL,
  comment text,
  PRIMARY KEY  (teid),
  KEY index_te_st (starttime,empid)
) TYPE=MyISAM;

The only thing that made me suspicious was the COMMENT field that's of
type TEXT.  On a hunch I decided to change it to VARCHAR(255) and
Voila! when I ran the above myisamchk the messages were gone.

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <mysql-unsubscribe-##L=##[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to