Summary: in this tutorial, you will learn how to use the mysqlcheck
command-line utility to check, repair, analyze, and optimize MySQL database tables.
Introduction to the mysqlcheck program
The mysqlcheck
is a command-line utility provided by MySQL to check, repair, analyze, and optimize tables in MySQL server. Behind the scenes, it uses the CHECK TABLE
, REPAIR TABLE
, ANALYZE TABLE
, and OPTIMIZE TABLE
statements.
By default, the MySQL client installation includes the mysqlcheck
. If have MySQL installed, you should already have the mysqlcheck
available in your system.
To invoke the mysqlcheck
, you follow these steps:
First, open the Command Prompt on Windows or Terminal on macOS and Linux.
Second, use the mysqlcheck
command with some options.
The following illustrates the syntax of the mysqlcheck
command:
mysqlcheck [options] db_name [tables]
Code language: SQL (Structured Query Language) (sql)
In this command:
options
: allows you to specify the action including check, repair, analyze, and optimize.database
: determines the name of the MySQL database you want to check.tables
: specifies the specific tables within the database to check.
Examples of using mysqlcheck command
Let’s explore some examples of using the mysqlcheck
command to check tables.
In the following example, we’ll use the default login path client to log in to the MySQL server. If you have not set up the default login path, you need to use the additional option for all the commands:
-u root -p
Code language: SQL (Structured Query Language) (sql)
The mysqlcheck
will prompt you to enter the password for the root user account.
1) Checking a specific table
The following example checks the employees
table in the classicmodels
database:
mysqlcheck classicmodels employees
Code language: SQL (Structured Query Language) (sql)
Output:
classicmodels.employees OK
Code language: SQL (Structured Query Language) (sql)
The output indicates that the employees
table is OK.
2) Checking all tables in a database
The following example checks all tables in the classicmodels
database:
mysqlcheck classicmodels
Code language: SQL (Structured Query Language) (sql)
Output:
classicmodels.customers OK
classicmodels.employees OK
classicmodels.offices OK
classicmodels.orderdetails OK
classicmodels.orders OK
classicmodels.payments OK
classicmodels.productlines OK
classicmodels.products OK
Code language: SQL (Structured Query Language) (sql)
3) Checking tables in all databases
The following command checks all tables in all databases in the MySQL server including the system databases (sys, mysql, information_schema
, and performance_schema
):
mysqlcheck --all-databases
Code language: SQL (Structured Query Language) (sql)
4) Using a specific option
If you want to perform a specific option e.g., analyze, check, repair, or optimize, you can use the corresponding option:
Action | Option |
---|---|
Analyze | --analyze or -a |
Check | --check or -c |
Repair | --repair or -r |
Optimize | --optimize or -o |
For example, the following command analyzes all tables in the classicmodels
database:
mysqlcheck -a classicmodels
Code language: SQL (Structured Query Language) (sql)
Summary
- Use the
mysqlcheck
command to verify and maintain the integrity of MySQL databases by checking, repairing, analyzing, and optimizing tables.