For supported Yum-based platforms (see Section 7.1, “Installing MySQL on Linux Using the MySQL Yum Repository”, for a list), you can perform an in-place upgrade for MySQL (that is, replacing the old version and then running the new version using the old data files) with the MySQL Yum repository.
Before performing any update to MySQL, follow carefully the instructions in Chapter 10, Upgrading MySQL. Among other instructions discussed there, it is especially important to back up your database before the update.
The following instructions assume you have installed MySQL with the MySQL Yum repository or with an RPM package directly downloaded from MySQL Developer Zone's MySQL Download page; if that is not the case, following the instructions in Replacing a Third-Party Distribution of MySQL Using the MySQL Yum Repository.
By default, the MySQL Yum repository updates MySQL to the latest version in the release series you have chosen during installation (see Selecting a Release Series for details), which means, for example, a 5.7.x installation will not be updated to a 8.0.x release automatically. To update to another release series, you need to first disable the subrepository for the series that has been selected (by default, or by yourself) and enable the subrepository for your target series. To do that, see the general instructions given in Selecting a Release Series. For upgrading from MySQL 5.7 to 8.0, perform the reverse of the steps illustrated in Selecting a Release Series, disabling the subrepository for the MySQL 5.7 series and enabling that for the MySQL 8.0 series.
As a general rule, to upgrade from one release series to another, go to the next series rather than skipping a series. For example, if you are currently running MySQL 5.6 and wish to upgrade to 8.0, upgrade to MySQL 5.7 first before upgrading to 8.0.Important
For important information about upgrading from MySQL 5.7 to 8.0, see Upgrading from MySQL 5.7 to 8.0.
Upgrade MySQL and its components by the following command, for platforms that are not dnf-enabled:
sudo yum update mysql-server
For platforms that are dnf-enabled:
sudo dnf upgrade mysql-server
Alternatively, you can update MySQL by telling Yum to update everything on your system, which might take considerably more time. For platforms that are not dnf-enabled:
sudo yum update
For platforms that are dnf-enabled:
sudo dnf upgrade
The MySQL server always restarts after an update by Yum. Prior to MySQL 8.0.16, run mysql_upgrade after the server restarts to check and possibly resolve any incompatibilities between the old data and the upgraded software. mysql_upgrade also performs other functions; for details, see mysql_upgrade — Check and Upgrade MySQL Tables. As of MySQL 8.0.16, this step is not required, as the server performs all tasks previously handled by mysql_upgrade.
You can also update only a specific component. Use the following command to list all the installed packages for the MySQL components (for dnf-enabled systems, replace yum in the command with dnf):
sudo yum list installed | grep "^mysql"
After identifying the package name of the component of your
choice, update the package with the following command, replacing
package-name with the name of the
package. For platforms that are not dnf-enabled:
sudo yum update package-name
For dnf-enabled platforms:
sudo dnf upgrade package-name
After updating MySQL using the Yum repository, applications compiled with older versions of the shared client libraries should continue to work.
If you recompile applications and dynamically link them with the updated libraries: As typical with new versions of shared libraries where there are differences or additions in symbol versioning between the newer and older libraries (for example, between the newer, standard 8.0 shared client libraries and some older—prior or variant—versions of the shared libraries shipped natively by the Linux distributions' software repositories, or from some other sources), any applications compiled using the updated, newer shared libraries will require those updated libraries on systems where the applications are deployed. And, as expected, if those libraries are not in place, the applications requiring the shared libraries will fail. So, be sure to deploy the packages for the shared libraries from MySQL on those systems. To do this, add the MySQL Yum repository to the systems (see Adding the MySQL Yum Repository) and install the latest shared libraries using the instructions given in Installing Additional MySQL Products and Components with Yum.