Documentation Home
MySQL 8.0 参考手册  / 第 2 章安装和升级 MySQL  / 2.11 升级MySQL  /  2.11.10 直接下载RPM包升级MySQL

2.11.10 直接下载RPM包升级MySQL

最好使用 MySQL Yum 存储库MySQL SLES 存储库在基于 RPM 的平台上升级 MySQL。但是,如果您必须使用直接从MySQL 开发人员专区下载的 RPM 包升级 MySQL (有关包的信息,请参阅 第 2.5.5 节“使用来自 Oracle 的 RPM 包在 Linux 上安装 MySQL”),转到包含所有下载的包(最好没有其他具有相似名称的 RPM 包),并发出以下命令:

yum install mysql-community-{server,client,common,libs}-*

对于 SLES 系统,将yum 替换为zypper ,对于支持dnf的系统,替换为 dnf。

虽然最好使用像yum这样的高级包管理工具来安装包,但更喜欢直接rpm命令的用户可以用rpm -Uvh命令替换yum install命令;但是,使用rpm -Uvh 反而会使安装过程更容易失败,因为安装过程可能会遇到潜在的依赖性问题。

对于使用 RPM 包的升级安装,如果升级安装开始时 MySQL 服务器正在运行,它会在安装结束时自动重新启动。如果升级安装开始时服务器没有运行,升级安装完成后需要自行重启服务器;例如,使用以下命令执行此操作:

service mysqld start

服务器重新启动后,运行mysql_upgrade以检查并可能解决旧数据与升级软件之间的任何不兼容问题。mysql_upgrade 还执行其他功能;有关详细信息,请参阅第 4.4.7 节,“mysql_upgrade — 检查和升级 MySQL 表”

笔记

由于 RPM 包之间的依赖关系,所有安装的包必须是同一版本。因此,请始终为 MySQL 更新所有已安装的软件包。例如,不要只更新服务器而不升级客户端、服务器和客户端库的通用文件等。

通过旧的 RPM 包从安装中迁移和升级。  一些旧版本的 MySQL Server RPM 包的名称采用 MySQL-* 的形式(例如,MySQL-server-* 和 MySQL-client-*)。最新版本的 RPM,当使用标准包管理工具(yumdnfzypper)安装时,会无缝升级那些较旧的安装,从而无需在安装新包之前卸载那些旧包。以下是旧版和当前 RPM 包之间的一些行为差异:

表 2.16 以前和现在安装 MySQL 的 RPM 包的区别

特征 以前包的行为 当前包的行为
安装完成后开始服务 是的 不,除非是升级安装,并且升级开始时服务器正在运行。
服务名称 数据库

对于 RHEL、Oracle Linux、CentOS 和 Fedora: mysqld

对于 SLES:mysql

错误日志文件 /var/lib/mysql/hostname.err

对于 RHEL、Oracle Linux、CentOS 和 Fedora:位于 /var/log/mysqld.log

对于 SLES:在 /var/log/mysql/mysqld.log

/etc/my.cnf文件一起发送 是的
多库支持 是的


笔记

使用旧包安装以前版本的 MySQL 可能会创建一个名为 /usr/my.cnf. 强烈建议您检查文件的内容并将所需的设置迁移到文件 /etc/my.cnf文件中,然后删除 /usr/my.cnf.

升级到 MySQL 企业服务器。  从社区版升级到商业版MySQL需要先卸载社区版,再安装商业版。在这种情况下,您必须在升级后手动重启服务器。

与操作系统本机 MySQL 包的互操作性。  许多 Linux 发行版将 MySQL 作为操作系统的集成部分提供。来自 Oracle 的最新版本的 RPM,当使用标准包管理工具(yumdnfzypper)安装时,无缝升级和替换操作系统附带的 MySQL 版本,包管理器自动替换系统兼容包,例如与 mysql-community-libs-compat相关的新版本一样。

从非本机 MySQL 包升级。  如果您使用第三方包安装 MySQL,而不是从 Linux 发行版的本机软件存储库(例如,直接从供应商下载的包),则必须先卸载所有这些包,然后才能使用来自 Oracle 的包进行升级。