用于 Oracle Linux、Red Hat Enterprise Linux、CentOS 和 Fedora 的 MySQL Yum 存储库 提供用于安装 MySQL 服务器、客户端、MySQL Workbench、MySQL 实用程序、MySQL 路由器、MySQL Shell、Connector/ODBC、Connector/Python 等等的 RPM 包(并非所有包都适用于所有发行版;有关详细信息,请参阅 使用 Yum 安装其他 MySQL 产品和组件)。
开始之前
作为一种流行的开源软件,MySQL,无论是其原始形式还是重新打包形式,都广泛安装在来自各种来源的许多系统上,包括不同的软件下载网站、软件存储库等等。以下说明假设 MySQL 尚未使用第三方分发的 RPM 包安装在您的系统上;如果并非如此,请按照 替换原生第三方 MySQL 发行版 中给出的说明操作。
存储库设置 RPM 文件名以 mysql84
开头,它描述了默认情况下启用安装的 MySQL 系列。在本例中,MySQL 8.4 LTS 子存储库默认情况下已启用。它还包含其他子存储库版本,例如 MySQL 8.0 和 MySQL 创新系列,它们默认情况下处于禁用状态。选择创新系列安装 MySQL 9.0。
全新安装 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 创新系列可用,但默认情况下处于禁用状态。{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 创新系列)的子存储库默认情况下处于禁用状态。使用此命令查看所有可用的与 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
您可以通过手动编辑
/etc/yum.repos.d/mysql-community.repo
文件来切换enabled
选项,而不是使用 config-manager 命令。例如,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 创新路线安装,请确保enabled=0
用于 MySQL 8.4 子存储库条目,并且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 支持
ARM 64 位 (aarch64) 在 Oracle Linux 7 上受支持,需要 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 的平台的兼容性信息。