mysqlcheck
(1)
名称
mysqlcheck - a table maintenance program
用法概要
mysqlcheck [options] [db_name [tbl_name ...]]
描述
MySQL Database System MYSQLCHECK(1)
NAME
mysqlcheck - a table maintenance program
SYNOPSIS
mysqlcheck [options] [db_name [tbl_name ...]]
DESCRIPTION
The mysqlcheck client performs table maintenance: It checks,
repairs, optimizes, or analyzes tables.
Each table is locked and therefore unavailable to other
sessions while it is being processed, although for check
operations, the table is locked with a READ lock only (see
Section 13.3.5, "LOCK TABLES and UNLOCK TABLES Syntax", for
more information about READ and WRITE locks). Table
maintenance operations can be time-consuming, particularly
for large tables. If you use the --databases or
--all-databases option to process all tables in one or more
databases, an invocation of mysqlcheck might take a long
time. (This is also true for mysql_upgrade because that
program invokes mysqlcheck to check all tables and repair
them if necessary.)
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 perform table maintenance.
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, and then sends the statements
to the server to be executed. For details about which
storage engines each statement works with, see the
descriptions for those statements in Section 13.7.2, "Table
Maintenance Statements".
The MyISAM storage engine supports all four maintenance
operations, so mysqlcheck can be used to perform any of them
on MyISAM tables. Other storage engines do not necessarily
support all operations. In such cases, an error message is
displayed. For example, if test.t is a MEMORY table, an
attempt to check it produces this result:
shell> mysqlcheck test t
test.t
note : The storage engine for the table doesn't support check
If mysqlcheck is unable to repair a table, see
Section 2.12.4, "Rebuilding or Repairing Tables or Indexes"
MySQL 5.5 Last change: 03/22/2013 1
MySQL Database System MYSQLCHECK(1)
for manual table repair strategies. This will be the case,
for example, for InnoDB tables, which can be checked with
CHECK TABLE, but not repaired with REPAIR TABLE.
Caution
It is best to make a backup of a table before performing
a table repair operation; under some circumstances the
operation might cause data loss. Possible causes include
but are not limited to file system errors.
There are three general ways to invoke mysqlcheck:
shell> mysqlcheck [options] db_name [tbl_name ...]
shell> mysqlcheck [options] --databases db_name ...
shell> mysqlcheck [options] --all-databases
If you do not name any tables following db_name or if you
use the --databases or --all-databases option, entire
databases are checked.
mysqlcheck has a special feature compared to other client
programs. 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 repairs tables.
The names shown in the following table can be used to change
mysqlcheck default behavior.
+--------------+-----------------------+
|Command | Meaning |
+--------------+-----------------------+
|mysqlrepair | The default option is |
| | --repair |
+--------------+-----------------------+
|mysqlanalyze | The default option is |
| | --analyze |
+--------------+-----------------------+
|mysqloptimize | The default option is |
| | --optimize |
+--------------+-----------------------+
mysqlcheck supports the following options, which can be
specified on the command line or in the [mysqlcheck] and
[client] groups of an option file. mysqlcheck also supports
the options for processing option files described at
Section 4.2.3.4, "Command-Line Options that Affect Option-
File Handling".
o --help, -?
MySQL 5.5 Last change: 03/22/2013 2
MySQL Database System MYSQLCHECK(1)
Display a help message and exit.
o --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.
o --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.
o --analyze, -a
Analyze the tables.
o --auto-repair
If a checked table is corrupted, automatically fix it.
Any necessary repairs are done after all tables have
been checked.
o --bind-address=ip_address
On a computer having multiple network interfaces, this
option can be used to select which interface is employed
when connecting to the MySQL server.
This option is supported only in the version of
mysqlcheck that is supplied with MySQL Cluster. It is
not available in standard MySQL Server 5.5 releases.
o --character-sets-dir=path
The directory where character sets are installed. See
Section 10.5, "Character Set Configuration".
o --check, -c
Check the tables for errors. This is the default
operation.
o --check-only-changed, -C
Check only tables that have changed since the last check
or that have not been closed properly.
o --check-upgrade, -g
Invoke CHECK TABLE with the FOR UPGRADE option to check
MySQL 5.5 Last change: 03/22/2013 3
MySQL Database System MYSQLCHECK(1)
tables for incompatibilities with the current version of
the server. This option automatically enables the
--fix-db-names and --fix-table-names options.
o --compress
Compress all information sent between the client and the
server if both support compression.
o --databases, -B
Process all tables in the named databases. Normally,
mysqlcheck treats the first name argument on the command
line as a database name and following names as table
names. With this option, it treats all name arguments as
database names.
o --debug[=debug_options], -# [debug_options]
Write a debugging log. A typical debug_options string is
'd:t:o,file_name'. The default is 'd:t:o'.
o --debug-check
Print some debugging information when the program exits.
o --debug-info
Print debugging information and memory and CPU usage
statistics when the program exits.
o --default-character-set=charset_name
Use charset_name as the default character set. See
Section 10.5, "Character Set Configuration".
o --extended, -e
If you are using this option to check tables, it ensures
that they are 100% consistent but takes 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!
o --default-auth=plugin
The client-side authentication plugin to use. See
Section 6.3.6, "Pluggable Authentication".
This option was added in MySQL 5.5.10.
MySQL 5.5 Last change: 03/22/2013 4
MySQL Database System MYSQLCHECK(1)
o --fast, -F
Check only tables that have not been closed properly.
o --fix-db-names
Convert database names to 5.1 format. Only database
names that contain special characters are affected.
o --fix-table-names
Convert table names to 5.1 format. Only table names that
contain special characters are affected. This option
also applies to views.
o --force, -f
Continue even if an SQL error occurs.
o --host=host_name, -h host_name
Connect to the MySQL server on the given host.
o --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.
o --optimize, -o
Optimize the tables.
o --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, mysqlcheck prompts for one.
Specifying a password on the command line should be
considered insecure. See Section 6.1.2.1, "End-User
Guidelines for Password Security". You can use an option
file to avoid giving the password on the command line.
o --pipe, -W
On Windows, connect to the server using a named pipe.
This option applies only if the server supports
named-pipe connections.
MySQL 5.5 Last change: 03/22/2013 5
MySQL Database System MYSQLCHECK(1)
o --plugin-dir=path
The directory in which to look for plugins. It may be
necessary to specify this option if the --default-auth
option is used to specify an authentication plugin but
mysqlcheck does not find it. See Section 6.3.6,
"Pluggable Authentication".
This option was added in MySQL 5.5.10.
o --port=port_num, -P port_num
The TCP/IP port number to use for the connection.
o --protocol={TCP|SOCKET|PIPE|MEMORY}
The connection protocol to use for connecting to the
server. It is useful when the other connection
parameters normally would cause a protocol to be used
other than the one you want. For details on the
permissible values, see Section 4.2.2, "Connecting to
the MySQL Server".
o --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.
o --repair, -r
Perform a repair that can fix almost anything except
unique keys that are not unique.
o --silent, -s
Silent mode. Print only error messages.
o --socket=path, -S path
For connections to localhost, the Unix socket file to
use, or, on Windows, the name of the named pipe to use.
o --ssl*
Options that begin with --ssl specify whether to connect
to the server using SSL and indicate where to find SSL
keys and certificates. See Section 6.3.8.4, "SSL Command
MySQL 5.5 Last change: 03/22/2013 6
MySQL Database System MYSQLCHECK(1)
Options".
o --tables
Override the --databases or -B option. All name
arguments following the option are regarded as table
names.
o --use-frm
For repair operations on MyISAM tables, get the table
structure from the .frm file so that the table can be
repaired even if the .MYI header is corrupted.
o --user=user_name, -u user_name
The MySQL user name to use when connecting to the
server.
o --verbose, -v
Verbose mode. Print information about the various stages
of program operation.
o --version, -V
Display version information and exit.
o --write-binlog
This option is enabled by default, so that ANALYZE
TABLE, OPTIMIZE TABLE, and REPAIR TABLE statements
generated by mysqlcheck are written to the binary log.
Use --skip-write-binlog to cause NO_WRITE_TO_BINLOG to
be added to the statements so that they are not logged.
Use the --skip-write-binlog when these statements should
not be sent to replication slaves or run when using the
binary logs for recovery from backup.
COPYRIGHT
Copyright (C) 1997, 2013, Oracle and/or its affiliates. All
rights reserved.
This software and related documentation are provided under a
license agreement containing restrictions on use and
disclosure and are protected by intellectual property laws.
Except as expressly permitted in your license agreement or
allowed by law, you may not use, copy, reproduce, translate,
broadcast, modify, license, transmit, distribute, exhibit,
perform, publish, or display any part, in any form, or by
any means. Reverse engineering, disassembly, or
decompilation of this software, unless required by law for
MySQL 5.5 Last change: 03/22/2013 7
MySQL Database System MYSQLCHECK(1)
interoperability, is prohibited.
The information contained herein is subject to change
without notice and is not warranted to be error-free. If you
find any errors, please report them to us in writing.
If this software or related documentation is delivered to
the U.S. Government or anyone licensing it on behalf of the
U.S. Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and
related documentation and technical data delivered to U.S.
Government customers are "commercial computer software" or
"commercial technical data" pursuant to the applicable
Federal Acquisition Regulation and agency-specific
supplemental regulations. As such, the use, duplication,
disclosure, modification, and adaptation shall be subject to
the restrictions and license terms set forth in the
applicable Government contract, and, to the extent
applicable by the terms of the Government contract, the
additional rights set forth in FAR 52.227-19, Commercial
Computer Software License (December 2007). Oracle USA, Inc.,
500 Oracle Parkway, Redwood City, CA 94065.
This software is developed for general use in a variety of
information management applications. It is not developed or
intended for use in any inherently dangerous applications,
including applications which may create a risk of personal
injury. If you use this software in dangerous applications,
then you shall be responsible to take all appropriate fail-
safe, backup, redundancy, and other measures to ensure the
safe use of this software. Oracle Corporation and its
affiliates disclaim any liability for any damages caused by
use of this software in dangerous applications.
Oracle is a registered trademark of Oracle Corporation
and/or its affiliates. MySQL is a trademark of Oracle
Corporation and/or its affiliates, and shall not be used
without Oracle's express written authorization. Other names
may be trademarks of their respective owners.
This software and documentation may provide access to or
information on content, products, and services from third
parties. Oracle Corporation and its affiliates are not
responsible for and expressly disclaim all warranties of any
kind with respect to third-party content, products, and
services. Oracle Corporation and its affiliates will not be
responsible for any loss, costs, or damages incurred due to
your access to or use of third-party content, products, or
services.
MySQL 5.5 Last change: 03/22/2013 8
MySQL Database System MYSQLCHECK(1)
This document in any form, software or printed matter,
contains proprietary information that is the exclusive
property of Oracle. Your access to and use of this material
is subject to the terms and conditions of your Oracle
Software License and Service Agreement, which has been
executed and with which you agree to comply. This document
and information contained herein may not be disclosed,
copied, reproduced, or distributed to anyone outside Oracle
without prior written consent of Oracle or as specifically
provided below. This document is not part of your license
agreement nor can it be incorporated into any contractual
agreement with Oracle or its subsidiaries or affiliates.
This documentation is NOT distributed under a GPL license.
Use of this documentation is subject to the following terms:
You may create a printed copy of this documentation solely
for your own personal use. Conversion to other formats is
allowed as long as the actual content is not altered or
edited in any way. You shall not publish or distribute this
documentation in any form or on any media, except if you
distribute the documentation in a manner similar to how
Oracle disseminates it (that is, electronically for download
on a Web site with the software) or on a CD-ROM or similar
medium, provided however that the documentation is
disseminated together with the software on the same medium.
Any other use, such as any dissemination of printed copies
or use of this documentation, in whole or in part, in
another publication, requires the prior written consent from
an authorized representative of Oracle. Oracle and/or its
affiliates reserve any and all rights to this documentation
not expressly granted above.
For more information on the terms of this license, or for
details on how the MySQL documentation is built and
produced, please visit blue]MySQL Contact & Questions].
For additional licensing information, including licenses for
third-party libraries used by MySQL products, see Preface
and Legal Notices.
For help with using MySQL, please visit either the
blue]MySQL Forums] or blue]MySQL Mailing Lists] where you
can discuss your issues with other MySQL users.
For additional documentation on MySQL products, including
translations of the documentation into other languages, and
downloadable versions in variety of formats, including HTML
and PDF formats, see the blue]MySQL Documentation Library].
MySQL 5.5 Last change: 03/22/2013 9
MySQL Database System MYSQLCHECK(1)
ATTRIBUTES
See attributes(5) for descriptions of the following
attributes:
+---------------+--------------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+--------------------------+
|Availability | database/mysql-55/client |
+---------------+--------------------------+
|Stability | Uncommitted |
+---------------+--------------------------+
SEE ALSO
For more information, please refer to the MySQL Reference
Manual, which may already be installed locally and which is
also available online at http://dev.mysql.com/doc/.
AUTHOR
Oracle Corporation (http://dev.mysql.com/).
NOTES
This software was built from source available at
https://java.net/projects/solaris-userland. The original
community source was downloaded from
http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.31.tar.gz
Further information about this software can be found on the
open source community website at http://dev.mysql.com/.
MySQL 5.5 Last change: 03/22/2013 10