5.5.2. mysql_upgrade — Check Tables for MySQL Upgrade
mysql_upgrade should be executed each
time you upgrade MySQL. It checks all tables in all
databases for incompatibilities with the current version of
MySQL Server. If a table is found to have a possible
incompatibility, it is checked. If any problems are found,
the table is repaired. mysql_upgrade also
upgrades the system tables so that you can take advantage of
new privileges or capabilities that might have been added.
All checked and repaired tables are marked with the current
MySQL version number. This ensures that next time you run
mysql_upgrade with the same version of
the server, it can tell whether there is any need to check
or repair the table again.
mysql_upgrade also saves the MySQL
version number in a file named
mysql_upgrade.info in the data
directory. This is used to quickly check if all tables have
been checked for this release so that table-checking can be
skipped. To ignore this file, use the
To check and repair tables and to upgrade the system tables,
mysql_upgrade executes the following
mysqlcheck --check-upgrade --all-databases --auto-repair
mysql_upgrade currently works only on
Unix. On Windows, you can execute the
mysqlcheck command manually, and then
upgrade your system tables as described in
Section 5.5.1, “mysql_fix_privilege_tables — Upgrade MySQL System Tables”.
For details about what is checked, see the description of
FOR UPGRADE option of the
CHECK TABLE statement (see
Section 188.8.131.52, “
CHECK TABLE Syntax”).
To use mysql_upgrade, make sure that the
server is running, and then invoke it like this:
mysql_upgrade reads options from the
command line and fromm the
[mysql_upgrade] groups in option files.
It supports the following options:
The path to the MySQL installation directory.
The path to the data directory.
Force execution of mysqlcheck even if
mysql_upgrade has already been
executed for the current version of MySQL. (In other
words, this option causes the
mysql_upgrade.info file to be
The MySQL username to use when connecting to the server.
The default username is
Verbose mode. Print more information about what the
Other options are passed to mysqlcheck
and to mysql_fix_privilege_tables. For
example, it might be necessary to specify the
mysql_upgrade was added in MySQL 5.1.7.
It supersedes the older