最好使用 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,当使用标准包管理工具(yum、dnf或 zypper)安装时,会无缝升级那些较旧的安装,从而无需在安装新包之前卸载那些旧包。以下是旧版和当前 RPM 包之间的一些行为差异:
使用旧包安装以前版本的 MySQL 可能会创建一个名为
/usr/my.cnf
. 强烈建议您检查文件的内容并将所需的设置迁移到文件
/etc/my.cnf
文件中,然后删除
/usr/my.cnf
.
升级到 MySQL 企业服务器。 从社区版升级到商业版MySQL需要先卸载社区版,再安装商业版。在这种情况下,您必须在升级后手动重启服务器。
与操作系统本机 MySQL 包的互操作性。
许多 Linux 发行版将 MySQL 作为操作系统的集成部分提供。来自 Oracle 的最新版本的 RPM,当使用标准包管理工具(yum、dnf或
zypper)安装时,无缝升级和替换操作系统附带的 MySQL 版本,包管理器自动替换系统兼容包,例如与
mysql-community-libs-compat
相关的新版本一样。
从非本机 MySQL 包升级。 如果您使用第三方包安装 MySQL,而不是从 Linux 发行版的本机软件存储库(例如,直接从供应商下载的包),则必须先卸载所有这些包,然后才能使用来自 Oracle 的包进行升级。