用于 Oracle Linux、Red Hat Enterprise Linux、CentOS 和 Fedora 的 MySQL Yum 仓库 提供了用于安装 MySQL 服务器、客户端、MySQL Workbench、MySQL Utilities、MySQL Router、MySQL Shell、Connector/ODBC、Connector/Python 等等的 RPM 包(并非所有包都适用于所有发行版;有关详细信息,请参阅 使用 Yum 安装其他 MySQL 产品和组件)。
开始之前
作为流行的开源软件,MySQL(以其原始形式或重新打包的形式)广泛安装在许多来自不同来源的系统上,包括不同的软件下载网站、软件仓库等等。以下说明假定 MySQL 尚未使用第三方分发的 RPM 包安装在您的系统上;如果不是这种情况,请按照 替换本机第三方 MySQL 发行版 中提供的说明进行操作。
仓库设置 RPM 文件名以 mysql84
开头,它描述了默认情况下启用的 MySQL 系列。在本例中,MySQL 8.4 LTS 子仓库默认情况下处于启用状态。它还包含其他子仓库版本,例如 MySQL 8.0 和 MySQL Innovation 系列,它们默认情况下处于禁用状态。
全新安装 MySQL 的步骤
按照以下步骤选择和安装最新的 MySQL 产品
-
添加 MySQL Yum 仓库
将 MySQL Yum 仓库添加到系统的仓库列表中。这通常是一次性操作,通过安装 MySQL 提供的 RPM 来执行。请按照以下步骤操作
从 MySQL Yum 仓库页面(https://dev.mysqlserver.cn/downloads/repo/yum/)下载它,该页面位于 MySQL 开发者专区。
选择并下载适合您平台的发行版包。
安装下载的发行版包。包文件格式为
mysql84-community-release-{platform}-{version-number}.noarch.rpm
mysql84
: 表示默认情况下启用的 MySQL 版本。在本例中,MySQL 8.4 默认情况下处于启用状态,MySQL 8.0 和 MySQL Innovation 系列也可用,但默认情况下处于禁用状态。{platform}
: 平台代码,例如 el7、el8、el9、fc38、fc39 或 fc40。'el' 代表 Enterprise Linux,'fc' 代表 Fedora,以平台的基本版本号结尾。{version-number}
: MySQL 仓库配置 RPM 的版本,因为它们偶尔会收到更新。
安装您为系统下载的 RPM,例如
$> sudo yum localinstall mysql84-community-release-{platform}-{version-number}.noarch.rpm
安装命令将 MySQL Yum 仓库添加到系统的仓库列表中,并下载 GnuPG 密钥以检查软件包的完整性。有关 GnuPG 密钥检查的详细信息,请参阅 第 2.1.4.2 节,“使用 GnuPG 进行签名检查”。
您可以通过以下命令检查 MySQL Yum 仓库是否已成功添加并启用(对于支持 dnf 的系统,请在命令中将 yum 替换为 dnf)
$> yum repolist enabled | grep mysql.*-community
示例输出
mysql-8.4-lts-community MySQL 8.4 LTS Community Server mysql-tools-8.4-lts-community MySQL Tools 8.4 LTS Community
这也表明最新的 LTS MySQL 版本默认情况下处于启用状态。以下将介绍选择不同发行版系列的方法,例如创新轨迹(当前为 9.0)或之前的系列(例如 MySQL 8.0)。
注意在系统上启用 MySQL Yum 仓库后,任何由 yum update 命令(或支持 dnf 的系统的 dnf upgrade 命令)执行的系统范围内的更新都会升级系统上的 MySQL 包,并替换任何本机第三方包(如果 Yum 在 MySQL Yum 仓库中找到了替换包);有关这可能对系统的一些影响的讨论,请参阅 第 3.8 节,“使用 MySQL Yum 仓库升级 MySQL”,有关升级共享客户端库的讨论,请参阅 升级共享客户端库。
-
选择发行版系列
使用 MySQL Yum 仓库时,最新的错误修复系列(当前为 MySQL 8.4)默认情况下被选中用于安装。如果您想要这个,您可以跳到下一步 安装 MySQL。
在 MySQL Yum 仓库中,每个 MySQL Community Server 发行版系列都托管在不同的子仓库中。最新 LTS 系列(当前为 MySQL 8.4)的子仓库默认情况下处于启用状态,所有其他系列的子仓库(例如 MySQL 8.0 和 MySQL Innovation 系列)默认情况下处于禁用状态。使用以下命令查看所有可用的 MySQL 相关子仓库(对于支持 dnf 的系统,请在命令中将 yum 替换为 dnf)
$> yum repolist all | grep mysql
示例输出
mysql-connectors-community MySQL Connectors Community enabled mysql-tools-8.4-lts-community MySQL Tools 8.4 LTS Community enabled mysql-tools-community MySQL Tools Community disabled mysql-tools-innovation-community MySQL Tools Innovation Commu disabled mysql-innovation-community MySQL Innovation Release Com disabled mysql-8.4-lts-community MySQL 8.4 Community LTS Server enabled mysql-8.4-lts-community-debuginfo MySQL 8.4 Community LTS Server - disabled mysql-8.4-lts-community-source MySQL 8.4 Community LTS Server - disabled mysql80-community MySQL 8.0 Community Server - disabled mysql80-community-debuginfo MySQL 8.0 Community Server - disabled mysql80-community-source MySQL 8.0 Community Server - disabled
要从除最新 LTS 系列之外的特定系列安装最新发行版,请在运行安装命令之前,禁用最新 LTS 系列的错误修复子仓库并启用特定系列的子仓库。如果您的平台支持 yum-config-manager 或 dnf config-manager 命令,您可以通过发出以下命令来禁用 8.4 系列的子仓库并启用 8.0 系列的子仓库
$> sudo yum-config-manager --disable mysql-8.4-lts-community $> sudo yum-config-manager --enable mysql80-community
对于支持 dnf 的平台
$> sudo dnf config-manager --disable mysql-8.4-lts-community $> sudo dnf config-manager --enable mysql80-community
除了使用 config-manager 命令外,您还可以通过切换
enabled
选项来手动编辑/etc/yum.repos.d/mysql-community.repo
文件。例如,EL8 的典型默认条目[mysql-8.4-lts-community] name=MySQL 8.4 LTS Community Server baseurl=http://repo.mysql.com/yum/mysql-8.4-community/el/8/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
找到要配置的子仓库的条目并编辑
enabled
选项。指定enabled=0
禁用子仓库或enabled=1
启用子仓库。例如,要从 MySQL 创新轨迹安装,请确保 MySQL 8.4 子仓库条目的enabled=0
,并且创新条目的enabled=1
[mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/8/$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
您应该始终只为一个发行系列启用子仓库。
通过运行以下命令并检查其输出,验证是否已正确启用和禁用子仓库(对于支持 dnf 的系统,请将命令中的 yum 替换为 dnf)。
$> yum repolist enabled | grep mysql
-
禁用默认的 MySQL 模块
(仅 EL8 系统) 基于 EL8 的系统,例如 RHEL8 和 Oracle Linux 8,默认情况下启用了 MySQL 模块。除非禁用此模块,否则它会屏蔽 MySQL 仓库提供的软件包。要禁用包含的模块并使 MySQL 仓库软件包可见,请使用以下命令(对于支持 dnf 的系统,请将命令中的 yum 替换为 dnf)。
$> sudo yum module disable mysql
-
安装 MySQL
使用以下命令安装 MySQL(对于支持 dnf 的系统,请将命令中的 yum 替换为 dnf)。
$> sudo yum install mysql-community-server
这将安装 MySQL 服务器的软件包 (
mysql-community-server
),以及运行服务器所需的组件软件包,包括客户端软件包 (mysql-community-client
)、客户端和服务器的通用错误消息和字符集 (mysql-community-common
) 以及共享客户端库 (mysql-community-libs
)。 -
启动 MySQL 服务器
使用以下命令启动 MySQL 服务器。
$> systemctl start mysqld
您可以使用以下命令检查 MySQL 服务器的状态。
$> systemctl status mysqld
如果操作系统启用了 systemd,则应使用标准的 systemctl(或者,使用参数反转的 service)命令,例如 stop、start、status 和 restart 来管理 MySQL 服务器服务。默认情况下,mysqld
服务已启用,并且会在系统重启时启动。有关更多信息,请参阅 第 2.5.9 节,“使用 systemd 管理 MySQL 服务器”。
在服务器的首次启动时,如果服务器的数据目录为空,将会发生以下情况。
服务器将被初始化。
SSL 证书和密钥文件将在数据目录中生成。
validate_password
将被安装并启用。将创建一个超级用户帐户
'root'@'localhost
。超级用户的密码将被设置并存储在错误日志文件中。要查看它,请使用以下命令。$> sudo grep 'temporary password' /var/log/mysqld.log
尽快更改 root 密码,方法是使用生成的临时密码登录并为超级用户帐户设置自定义密码。
$> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
注意validate_password
默认情况下已安装。由validate_password
实施的默认密码策略要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为 8 个字符。
有关安装后过程的更多信息,请参阅 第 2.9 节,“安装后设置和测试”。
EL7 基平台的兼容性信息: 来自平台本机软件仓库的以下 RPM 软件包与安装 MySQL 服务器的 MySQL Yum 仓库中的软件包不兼容。安装了使用 MySQL Yum 仓库安装的 MySQL 后,您将无法安装这些软件包(反之亦然)。
akonadi-mysql
使用 Yum 安装其他 MySQL 产品和组件
您可以使用 Yum 安装和管理 MySQL 的各个组件。其中一些组件托管在 MySQL Yum 仓库的子仓库中:例如,MySQL 连接器位于 MySQL 连接器社区子仓库中,MySQL Workbench 位于 MySQL 工具社区中。您可以使用以下命令列出从 MySQL Yum 仓库到您的平台的所有可用 MySQL 组件的软件包(对于支持 dnf 的系统,请将命令中的 yum 替换为 dnf)。
$> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available
使用以下命令安装您选择的任何软件包,将 package-name
替换为软件包的名称(对于支持 dnf 的系统,请将命令中的 yum 替换为 dnf)。
$> sudo yum install package-name
例如,要安装 Fedora 上的 MySQL Workbench
$> sudo dnf install mysql-workbench-community
要安装共享客户端库(对于支持 dnf 的系统,请将命令中的 yum 替换为 dnf)。
$> sudo yum install mysql-community-libs
平台特定说明
ARM 支持
Oracle Linux 7 支持 ARM 64 位 (aarch64),并且需要 Oracle Linux 7 软件集合仓库 (ol7_software_collections)。例如,要安装服务器。
$> yum-config-manager --enable ol7_software_collections
$> yum install mysql-community-server
使用 Yum 更新 MySQL
除了安装之外,您还可以使用 MySQL Yum 仓库对 MySQL 产品和组件执行更新。有关详细信息,请参阅 第 3.8 节,“使用 MySQL Yum 仓库升级 MySQL”。
替换 MySQL 的本机第三方发行版
如果您从本机软件仓库(即由您的 Linux 发行版提供的软件仓库)中安装了 MySQL 的第三方发行版,请遵循以下步骤。
-
备份您的数据库
为了避免数据丢失,请务必在尝试使用 MySQL Yum 仓库替换 MySQL 安装之前备份您的数据库。有关如何备份数据库的信息,请参阅 第 9 章,备份和恢复。
-
添加 MySQL Yum 仓库
按照 添加 MySQL Yum 仓库 中提供的说明,将 MySQL Yum 仓库添加到系统的仓库列表中。
-
使用 Yum 更新或 DNF 升级替换本机第三方发行版
根据设计,当您在系统上执行 yum update 命令(或对于支持 dnf 的系统,则执行 dnf upgrade)或执行 yum update mysql-server(或对于支持 dnf 的系统,则执行 dnf upgrade mysql-server)时,MySQL Yum 仓库会用来自 MySQL Yum 仓库的最新错误修复版本替换您的本机第三方 MySQL。
使用 Yum 仓库更新 MySQL 后,使用旧版共享客户端库编译的应用程序应该能够继续工作。但是,如果您想重新编译应用程序并使用更新的库动态链接它们,请参阅 升级共享客户端库,了解一些特殊注意事项。
对于 EL7 基平台: 请参阅 EL7 基平台的兼容性信息。