(mysql.info.gz) Using mysqlcheck
Info Catalog
(mysql.info.gz) mysqlcc
(mysql.info.gz) Client-Side Scripts
(mysql.info.gz) mysqldump
8.7 The `mysqlcheck' Table Maintenance and Repair Program
=========================================================
The `mysqlcheck' client checks and repairs `MyISAM' tables. It can
also optimize and analyze tables. `mysqlcheck' is available as of MySQL
3.23.38.
`mysqlcheck' is similar in function to `myisamchk', but works
differently. The main operational difference is that `mysqlcheck' must
be used when the `mysqld' server is running, whereas `myisamchk' should
be used when it is not. The benefit of using `mysqlcheck' is that you
do not have to stop the server to check or repair your tables.
`mysqlcheck' uses the SQL statements `CHECK TABLE', `REPAIR TABLE',
`ANALYZE TABLE', and `OPTIMIZE TABLE' in a convenient way for the user.
It determines which statements to use for the operation you want to
perform, then sends the statements to the server to be executed.
There are three general ways to invoke `mysqlcheck':
shell> mysqlcheck [OPTIONS] DB_NAME [TABLES]
shell> mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]
shell> mysqlcheck [OPTIONS] --all-databases
If you don't name any tables or use the `--databases' or
`--all-databases' option, entire databases will be checked.
`mysqlcheck' has a special feature compared to the other clients. The
default behavior of checking tables (`--check') can be changed by
renaming the binary. If you want to have a tool that repairs tables by
default, you should just make a copy of `mysqlcheck' named
`mysqlrepair', or make a symbolic link to `mysqlcheck' named
`mysqlrepair'. If you invoke `mysqlrepair', it will repair tables by
command.
The following names can be used to change `mysqlcheck' default behavior:
`mysqlrepair' The default option will be `--repair'
`mysqlanalyze' The default option will be `--analyze'
`mysqloptimize' The default option will be `--optimize'
`mysqlcheck' supports the following options:
`--help, -?'
Display a help message and exit.
`--all-databases, -A'
Check all tables in all databases. This is the same as using the
`--databases' option and naming all the databases on the command
line.
`--all-in-1, -1'
Instead of issuing a statement for each table, execute a single
statement for each database that names all the tables from that
database to be processed.
`--analyze, -a'
Analyze the tables.
`--auto-repair'
If a checked table is corrupted, automatically fix it. Any
necessary repairs are done after all tables have been checked.
`--character-sets-dir=PATH'
The directory where character sets are installed. Character
sets.
`--check, -c'
Check the tables for errors.
`--check-only-changed, -C'
Check only tables that have changed since the last check or that
haven't been closed properly.
`--compress'
Compress all information sent between the client and the server if
both support compression.
`--databases, -B'
Process all tables in the named databases. With this option, all
name arguments are regarded as database names, not as table names.
`--debug[=DEBUG_OPTIONS], -# [DEBUG_OPTIONS]'
Write a debugging log. The DEBUG_OPTIONS string often is
`'d:t:o,FILE_NAME''.
`--default-character-set=CHARSET'
Use CHARSET as the default character set. Character sets.
`--extended, -e'
If you are using this option to check tables, it ensures that they
are 100% consistent but will take a long time.
If you are using this option to repair tables, it runs an extended
repair that may not only take a long time to execute, but may
produce a lot of garbage rows also!
`--fast, -F'
Check only tables that haven't been closed properly.
`--force, -f'
Continue even if an SQL error occurs.
`--host=HOST_NAME, -h HOST_NAME'
Connect to the MySQL server on the given host.
`--medium-check, -m'
Do a check that is faster than an `--extended' operation. This
finds only 99.99% of all errors, which should be good enough in
most cases.
`--optimize, -o'
Optimize the tables.
`--password[=PASSWORD], -p[PASSWORD]'
The password to use when connecting to the server. If you use the
short option form (`-p'), you _cannot_ have a space between the
option and the password. If you omit the PASSWORD value following
the `--password' or `-p' option on the command line, you will be
prompted for one.
`--port=PORT_NUM, -P PORT_NUM'
The TCP/IP port number to use for the connection.
`--protocol={TCP | SOCKET | PIPE | MEMORY}'
The connection protocol to use. New in MySQL 4.1.
`--quick, -q'
If you are using this option to check tables, it prevents the check
from scanning the rows to check for incorrect links. This is the
fastest check method.
If you are using this option to repair tables, it tries to repair
only the index tree. This is the fastest repair method.
`--repair, -r'
Do a repair that can fix almost anything except unique keys that
aren't unique.
`--silent, -s'
Silent mode. Print only error messages.
`--socket=PATH, -S PATH'
The socket file to use for the connection.
`--tables'
Overrides the `--databases' or `-B' option. All arguments
following the option are regarded as table names.
`--user=USER_NAME, -u USER_NAME'
The MySQL username to use when connecting to the server.
`--verbose, -v'
Verbose mode. Print information about the various stages of
program operation.
`--version, -V'
Display version information and exit.
Info Catalog
(mysql.info.gz) mysqlcc
(mysql.info.gz) Client-Side Scripts
(mysql.info.gz) mysqldump
automatically generated byinfo2html