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 -pCode 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 employeesCode language: SQL (Structured Query Language) (sql)Output:
classicmodels.employees OKCode 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 classicmodelsCode 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 OKCode 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-databasesCode 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 classicmodelsCode language: SQL (Structured Query Language) (sql)Summary
- Use the
mysqlcheckcommand to verify and maintain the integrity of MySQL databases by checking, repairing, analyzing, and optimizing tables.