OS Manuals

/usr/bin/myisamchk

The MySQL open source relational database

From mysql-9.1 9.1.0-r5 (os), captured 2026-11-05 by running myisamchk --help (exit 0). permalink

/usr/bin/myisamchk  Ver 9.1.0 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Description, check and repair of MyISAM tables.
Used without options all tables on the command will be checked for errors
Usage: myisamchk [OPTIONS] tables[.MYI]

Global options:
  -H, --HELP          Display this help and exit.
  -?, --help          Display this help and exit.
  -t, --tmpdir=path   Path for temporary files. Multiple paths can be
                      specified, separated by colon (:), they will be used
                      in a round-robin fashion.
  -s, --silent	      Only print errors.  One can use two -s to make
		      myisamchk very silent.
  -v, --verbose       Print more information. This can be used with
                      --description and --check. Use many -v for more verbosity.
  -V, --version       Print version and exit.
  -w, --wait          Wait if table is locked.

Check options (check is the default action for myisamchk):
  -c, --check	      Check table for errors.
  -e, --extend-check  Check the table VERY thoroughly. Only use this in
                      extreme cases as myisamchk should normally be able to
                      find out if the table is ok even without this switch.
  -F, --fast	      Check only tables that haven't been closed properly.
  -C, --check-only-changed
		      Check only tables that have changed since last check.
  -f, --force         Restart with '-r' if there are any errors in the table.
		      States will be updated as with '--update-state'.
  -i, --information   Print statistics information about table that is checked.
  -m, --medium-check  Faster than extend-check, but only finds 99.99% of
		      all errors.  Should be good enough for most cases.
  -U  --update-state  Mark tables as crashed if you find any errors.
  -T, --read-only     Don't mark table as checked.

Repair options (When using '-r' or '-o'):
  -B, --backup	      Make a backup of the .MYD file as 'filename-time.BAK'.
  --correct-checksum  Correct checksum information for table.
  -D, --data-file-length=#  Max length of data file (when recreating data
                      file when it's full).
  -e, --extend-check  Try to recover every possible row from the data file
		      Normally this will also find a lot of garbage rows;
		      Don't use this option if you are not totally desperate.
  -f, --force         Overwrite old temporary files.
  -k, --keys-used=#   Tell MyISAM to update only some specific keys. # is a
	              bit mask of which keys to use. This can be used to
		      get faster inserts.
  --max-record-length=#
                      Skip rows bigger than this if myisamchk can't allocate
		      memory to hold it.
  -r, --recover       Can fix almost anything except unique keys that aren't
                      unique.
  -n, --sort-recover  Forces recovering with sorting even if the temporary
		      file would be very big.
  -o, --safe-recover  Uses old recovery method; Slower than '-r' but can
		      handle a couple of cases where '-r' reports that it
		      can't fix the data file.
  --character-sets-dir=...
                      Directory where character sets are.
  --set-collation=name
 		      Change the collation used by the index.
  -q, --quick         Faster repair by not modifying the data file.
                      One can give a second '-q' to force myisamchk to
		      modify the original datafile in case of duplicate keys.
		      NOTE: Tables where the data file is corrupted can't be
		      fixed with this option.
  -u, --unpack        Unpack file packed with myisampack.

Other actions:
  -a, --analyze	      Analyze distribution of keys. Will make some joins in
		      MySQL faster.  You can check the calculated distribution
		      by using '--description --verbose table_name'.
  --stats_method=name Specifies how index statistics collection code should
                      treat NULLs. Possible values of name are "nulls_unequal"
                      (default for 4.1/5.0), "nulls_equal" (emulate 4.0), and
                      "nulls_ignored".
  -d, --description   Prints some information about table.
  -A, --set-auto-increment[=value]
		      Force auto_increment to start at this or higher value
		      If no value is given, then sets the next auto_increment
		      value to the highest used value for the auto key + 1.
  -S, --sort-index    Sort index blocks.  This speeds up 'read-next' in
		      applications.
  -R, --sort-records=#
		      Sort records according to an index.  This makes your
		      data much more localized and may speed up things
		      (It may be VERY slow to do a sort the first time!).
  -b,  --block-search=#
                       Find a record, a block at given offset belongs to.

Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
The following groups are read: myisamchk
The following options may be given as the first argument:
--print-defaults        Print the program argument list and exit.
--no-defaults           Don't read default options from any option file,
                        except for login file.
--defaults-file=#       Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
--defaults-group-suffix=#
                        Also read groups with concat(group, suffix)
--login-path=#          Read this path from the login file.
--no-login-paths        Don't read login paths from the login path file.

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
character-sets-dir                (No default value)
data-file-length                  0
keys-used                         18446744073709551615
max-record-length                 9223372036854775807
set-auto-increment                0
set-collation                     (No default value)
sort-records                      0
tmpdir                            (No default value)
key-buffer-size                   520192
key-cache-block-size              1024
myisam-block-size                 1024
read-buffer-size                  262136
write-buffer-size                 262136
sort-buffer-size                  2097144
myisam-sort-buffer-size           2097144
sort-key-blocks                   16
decode-bits                       9
ft-min-word-len                   4
ft-max-word-len                   84
ft-stopword-file                  (No default value)
stats-method                      nulls_unequal
Options (40)
OptionDescriptionSource
-H, --HELPDisplay this help and exit.help
-?, --helpDisplay this help and exit.help
-t, --tmpdir pathPath for temporary files.help
-s, --silentOnly print errors.help
-v, --verbosePrint more information.help
-V, --versionPrint version and exit.help
-w, --waitWait if table is locked.help
-c, --checkCheck table for errors.help
-e, --extend-checkCheck the table VERY thoroughly.help
-F, --fastCheck only tables that haven't been closed properly.help
-C, --check-only-changedCheck only tables that have changed since last check.help
-f, --forceRestart with '-r' if there are any errors in the table.help
-i, --informationPrint statistics information about table that is checked.help
-m, --medium-checkFaster than extend-check, but only finds 99.99% of all errors.help
-U--update-state Mark tables as crashed if you find any errors.help
-T, --read-onlyDon't mark table as checked.help
-B, --backupMake a backup of the .MYD file as 'filename-time.BAK'.help
--correct-checksumCorrect checksum information for table.help
-D, --data-file-length #Max length of data file (when recreating data file when it's full).help
-k, --keys-used #Tell MyISAM to update only some specific keys.help
--max-record-length #Skip rows bigger than this if myisamchk can't allocate memory to hold it.help
-r, --recoverCan fix almost anything except unique keys that aren't unique.help
-n, --sort-recoverForces recovering with sorting even if the temporary file would be very big.help
-o, --safe-recoverUses old recovery method;help
--character-sets-dir ...Directory where character sets are.help
--set-collation nameChange the collation used by the index.help
-q, --quickFaster repair by not modifying the data file.help
-u, --unpackUnpack file packed with myisampack.help
-a, --analyzeAnalyze distribution of keys.help
-d, --descriptionPrints some information about table.help
-A, --set-auto-increment valueForce auto_increment to start at this or higher value If no value is given, then sets the next auto_increment value to the highest used value for the auto key + 1.help
-S, --sort-indexSort index blocks.help
-R, --sort-records #Sort records according to an index.help
-b--block-search=# Find a record, a block at given offset belongs to.help
--print-defaultsPrint the program argument list and exit.help
--no-defaultsDon't read default options from any option file, except for login file.help
--defaults-file #Only read default options from the given file #.help
--defaults-group-suffix #Also read groups with concat(group, suffix)help
--login-path #Read this path from the login file.help
--no-login-pathsDon't read login paths from the login path file.help

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.