### 2.11.7 使用 MySQL Yum 存储库升级 MySQL

[](<>)[](<>)

对于受支持的基于 Yum 的平台（请参阅[第 2.5.1 节，“使用 MySQL Yum 存储库在 Linux 上安装 MySQL”](linux-installation-yum-repo.html)，对于列表），您可以使用 MySQL Yum 存储库对 MySQL 执行就地升级（即替换旧版本，然后使用旧数据文件运行新版本）。

笔记

-   在对 MySQL 执行任何更新之前，请仔细遵循中的说明[第 2.11 节，“升级 MySQL”](upgrading.html).在此处讨论的其他说明中，在更新之前备份数据库尤为重要。

-   以下说明假设您已使用 MySQL Yum 存储库或直接从以下位置下载的 RPM 包安装 MySQL[MySQL 开发者专区的 MySQL 下载页面](https://dev.mysql.com/downloads/);如果不是这种情况，请按照[使用 MySQL Yum 存储库替换 MySQL 的第三方发行版](https://dev.mysql.com/doc/refman/5.7/en/replace-third-party-yum.html).

1.  #### [](<>)选择目标系列

    默认情况下，MySQL Yum 存储库会将 MySQL 更新到您在安装期间选择的发行系列中的最新版本（请参阅[选择发布系列](linux-installation-yum-repo.html#yum-repo-select-series)有关详细信息），这意味着，例如，5.7.x 安装是*不是*自动更新到 8.0.x 版本。要更新到另一个版本系列，您必须首先禁用已选择的系列的子存储库（默认情况下或您自己），然后为您的目标系列启用子存储库。为此，请参阅中给出的一般说明[选择发布系列](linux-installation-yum-repo.html#yum-repo-select-series).要从 MySQL 5.7 升级到 8.0，请执行*逆转*中说明的步骤[选择发布系列](linux-installation-yum-repo.html#yum-repo-select-series)，禁用 MySQL 5.7 系列的子存储库并为 MySQL 8.0 系列启用它。

    作为一般规则，要从一个版本系列升级到另一个系列，请转到下一个系列，而不是跳过一个系列。例如，如果您当前正在运行 MySQL 5.6 并希望升级到 8.0，请先升级到 MySQL 5.7，然后再升级到 8.0。

    重要的

    有关从 MySQL 5.7 升级到 8.0 的重要信息，请参阅[从 MySQL 5.7 升级到 8.0](upgrading-from-previous-series.html).

2.  #### [](<>)升级 MySQL

    对于未启用 dnf 的平台，通过以下命令升级 MySQL 及其组件：

    ```
    sudo yum update mysql-server
    ```

    对于支持 dnf 的平台：

    ```
    sudo dnf upgrade mysql-server
    ```

    或者，您可以通过告诉 Yum 更新系统上的所有内容来更新 MySQL，这可能需要更多时间。对于未启用 dnf 的平台：

    ```
    sudo yum update
    ```

    对于支持 dnf 的平台：

    ```
    sudo dnf upgrade
    ```

3.  #### [](<>)重启 MySQL

    MySQL 服务器总是在 Yum 更新后重新启动。在 MySQL 8.0.16 之前，运行[**mysql\_升级**](mysql-upgrade.html)在服务器重新启动后检查并可能解决旧数据和升级软件之间的任何不兼容问题。[**mysql\_升级**](mysql-upgrade.html)还执行其他功能；有关详细信息，请参阅[第 4.4.5 节，“mysql_upgrade — 检查和升级 MySQL 表”](mysql-upgrade.html).从MySQL 8.0.16开始，这一步不再是必需的，因为服务器会执行以前由MySQL处理的所有任务[**mysql\_升级**](mysql-upgrade.html).

    还可以仅更新特定组件。使用以下命令列出MySQL组件的所有安装包（对于支持dnf的系统，请替换**好吃**指挥**dnf**):


```
sudo yum list installed | grep "^mysql"
```

确定所选组件的包名称后，使用以下命令更新包，替换*`包名`*用包裹的名字。对于未启用dnf的平台：

```
sudo yum update package-name
```

对于支持dnf的平台：

```
sudo dnf upgrade package-name
```

#### 升级共享客户端库

在使用Yum存储库更新MySQL之后，使用较旧版本的共享客户端库编译的应用程序应该可以继续工作。

*如果重新编译应用程序并将其与更新的库动态链接：*与共享库的新版本一样，新版本库和旧版本库之间的符号版本控制存在差异或增加（例如，新的标准8.0共享客户端库和Linux发行版软件存储库或其他来源本地提供的共享库的一些旧的先前或变体版本之间），使用更新的共享库编译的任何应用程序都需要部署应用程序的系统上的更新库。正如所料，如果这些库不存在，那么需要共享库的应用程序就会失败。因此，请确保在这些系统上部署MySQL中共享库的包。为此，请将MySQL Yum存储库添加到系统中（请参阅[添加MySQL-Yum存储库](linux-installation-yum-repo.html#yum-repo-setup))并按照中给出的说明安装最新的共享库[使用Yum安装其他MySQL产品和组件](linux-installation-yum-repo.html#yum-install-components).
