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 在其原始或重新打包的形式下广泛安装在许多系统上,从各种软件下载站点、软件存储库等来源安装;如果您的系统上已经安装了第三方分发的 RPM 软件包,请按照 第 3.8 节“使用 MySQL Yum 存储库升级 MySQL” 或 使用 MySQL Yum 存储库替换第三方 MySQL 发行版 中的说明进行操作。
存储库设置 RPM 文件名以 mysql80-community
开头,以突出显示默认活动的 MySQL 子存储库,即当前的 MySQL 8.0 版本。它们还安装了 MySQL 创新跟踪的子存储库,允许安装和升级 MySQL 8.3 创新版本。
MySQL 的新安装步骤
按照以下步骤选择和安装最新的 MySQL 产品:
-
添加 MySQL Yum 存储库
将 MySQL Yum 存储库添加到系统的存储库列表中。这通常是一个一次性的操作,通过安装 MySQL 提供的 RPM 来完成。按照以下步骤操作:
-
从 MySQL Developer Zone 的 MySQL Yum 存储库页面 下载 RPM。
-
选择并下载适合您平台的发行包。
-
安装下载的发行包。文件格式为:
mysql80-community-release-{platform}-{version-number}.noarch.rpm
-
mysql80
:表示默认启用的 MySQL 版本。在这种情况下,默认启用 MySQL 8.0,MySQL 8.3(创新跟踪)默认禁用。 -
{platform}
:平台代码,如 el7、el8、el9、fc37、fc38 或 fc39。'el' 代表 Enterprise Linux,'fc' 代表 Fedora,后面是平台的基本版本号。 -
{version-number}
:MySQL 存储库配置 RPM 的版本号,它们会不时更新。
例如,安装您下载的 RPM:
$> sudo yum localinstall mysql80-community-release-{platform}-{version-number}.noarch.rpm
安装命令将 MySQL Yum 存储库添加到系统的存储库列表中,并下载 GnuPG 密钥以检查软件包的完整性。详见 第 2.1.4.2 节“使用 GnuPG 签名检查”。
您可以通过以下命令检查 MySQL Yum 存储库是否成功添加和启用(对于 dnf-enabled 系统,请将 yum 命令替换为 dnf):
$> yum repolist enabled | grep mysql.*-community
示例输出:
mysql-connectors-community MySQL Connectors Community mysql-tools-community MySQL Tools Community mysql80-community MySQL 8.0 Community Server
这也表明最新的 bugfix 或 LTS MySQL 版本默认启用。选择不同版本系列的方法,例如创新跟踪(当前是 8.3),将在下面描述。
-
Note一旦 MySQL Yum 存储库在您的系统上启用,任何系统范围的更新命令 yum update(或 dnf upgrade 对于 dnf-enabled 系统)将升级 MySQL 软件包,并替换任何 native 第三方软件包,如果 Yum 在 MySQL Yum 存储库中找到替换项;详见 第 3.8 节“使用 MySQL Yum 存储库升级 MySQL”,关于这对您的系统可能产生的影响的讨论,见 升级共享客户端库。
-
-
选择版本系列
使用 MySQL Yum 存储库时,默认选择最新的 bugfix 系列(当前是 MySQL 8.0)。如果这是您想要的,可以跳过下一步, 安装 MySQL。
在 MySQL Yum 存储库中,每个 MySQL Community Server 发布系列都托管在不同的子存储库中。最新的 bugfix 系列(当前为 MySQL 8.0)的子存储库默认启用,而所有其他系列的子存储库默认禁用。使用以下命令查看所有可用的 MySQL 相关子存储库(对于 dnf-enabled 系统,请将命令中的 yum 替换为 dnf):
$> yum repolist all | grep mysql
示例输出:
mysql-connectors-community MySQL Connectors Community enabled mysql-connectors-community-debuginfo MySQL Connectors Community - disabled mysql-connectors-community-source MySQL Connectors Community - disabled mysql-innovation-community MySQL Innovation Release Com disabled mysql-innovation-community-debuginfo MySQL Innovation Release Com disabled mysql-innovation-community-source MySQL Innovation Release Com disabled mysql-tools-community MySQL Tools Community enabled mysql-tools-community-debuginfo MySQL Tools Community - Debu disabled mysql-tools-community-source MySQL Tools Community - Sour disabled mysql-tools-innovation-community MySQL Tools Innovation Commu disabled mysql-tools-innovation-community-debuginfo MySQL Tools Innovation Commu disabled mysql-tools-innovation-community-source MySQL Tools Innovation Commu disabled mysql80-community MySQL 8.0 Community Server enabled mysql80-community-debuginfo MySQL 8.0 Community Server - disabled mysql80-community-source MySQL 8.0 Community Server - disabled
要从特定系列安装最新版本,而不是最新的 bugfix 系列,禁用最新的 bugfix 系列的子存储库,并在安装命令之前启用特定系列的子存储库。如果您的平台支持 yum-config-manager 或 dnf config-manager 命令,可以使用以下命令禁用 8.0 系列的子存储库并启用创新跟踪的子存储库:
$> sudo yum-config-manager --disable mysql80-community $> sudo yum-config-manager --enable mysql-innovation-community
对于 dnf-enabled 平台:
$> sudo dnf config-manager --disable mysql80-community $> sudo dnf config-manager --enable mysql-innovation-community
instead of using the config-manager 命令,可以手动编辑
/etc/yum.repos.d/mysql-community.repo
文件,通过 togglingenabled
选项。例如,EL8 的典型默认条目:[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 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
找到要配置的子存储库的条目,并编辑
enabled
选项。指定enabled=0
禁用子存储库或enabled=1
启用子存储库。例如,要从 MySQL 创新跟踪安装,确保 MySQL 8.0 子存储库条目enabled=0
并且创新跟踪条目enabled=1
:[mysql-innovation-community] name=MySQL Innovation Release Community Server baseurl=http://repo.mysql.com/yum/mysql-innovation-community/el/8/$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
在任何时候,只能启用一个版本系列的子存储库。
通过运行以下命令并检查其输出(对于 dnf-enabled 系统,请将命令中的 yum 替换为 dnf),验证正确的子存储库是否已启用和禁用:
$> yum repolist enabled | grep mysql
-
禁用默认的 MySQL 模块
(仅 EL8 系统) EL8 基础系统,如 RHEL8 和 Oracle Linux 8,包括一个默认启用的 MySQL 模块。除非禁用该模块,否则它将屏蔽 MySQL 存储库提供的包。要禁用该模块并使 MySQL 存储库包可见,请使用以下命令(对于 dnf-enabled 系统,请将命令中的 yum 替换为 dnf):
$> sudo yum module disable mysql
-
安装 MySQL
使用以下命令安装 MySQL(对于 dnf-enabled 系统,请将命令中的 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 命令,参数反转)来管理 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!';
Notevalidate_password
默认安装。默认密码策略由validate_password
实现,要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为 8 个字符。
有关后安装过程的更多信息,请参阅 第 2.9 节,“后安装设置和测试”。
EL7 平台的兼容性信息: 来自平台的本机软件仓库的以下 RPM 软件包与 MySQL Yum 仓库中的软件包不兼容,一旦您使用 MySQL Yum 仓库安装了 MySQL 服务器,就不能安装这些软件包(反之亦然)。
-
akonadi-mysql
使用 Yum 安装附加的 MySQL 产品和组件
您可以使用 Yum 安装和管理 MySQL 的单个组件。这些组件的一些位于 MySQL Yum 仓库的子仓库中,例如 MySQL 连接器位于 MySQL 连接器社区子仓库中,MySQL Workbench 位于 MySQL 工具社区中。您可以使用以下命令列出 MySQL Yum 仓库中所有可用的 MySQL 组件包(对于 dnf-enabled 系统,请将命令中的 yum 替换为 dnf):
$> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available
使用以下命令安装您选择的任何包,replace package-name
with 包名(对于 dnf-enabled 系统,请将命令中的 yum 替换为 dnf):
$> sudo yum install package-name
例如,要在 Fedora 上安装 MySQL Workbench:
$> sudo dnf install mysql-workbench-community
要安装共享客户端库(对于 dnf-enabled 系统,请将命令中的 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 Yum 仓库替换第三方 MySQL 发行版
要将支持的 Linux 平台的本机软件仓库中的第三方 MySQL 发行版替换为 MySQL Yum 仓库中的最新 bug 修复版本(当前来自 MySQL 8.0 系列),请按照以下步骤操作:
替换本机第三方 MySQL 发行版
如果您从 Linux 发行版的本机软件仓库安装了第三方 MySQL 发行版,请按照以下步骤操作:
-
备份数据库
为了避免数据丢失,在尝试使用 MySQL Yum 仓库替换 MySQL 安装之前,请始终备份数据库。请参阅 第 9 章 备份和恢复,了解如何备份数据库。
-
添加 MySQL Yum 仓库
按照 添加 MySQL Yum 仓库 中的说明将 MySQL Yum 仓库添加到系统的仓库列表中。
-
使用 Yum 更新或 DNF 升级替换本机第三方发行版
按照设计,MySQL Yum 仓库将在您执行 yum update 命令(或 dnf-enabled 系统中的 dnf upgrade)时将本机第三方 MySQL 替换为 MySQL Yum 仓库中的最新 bug 修复版本,或者执行 yum update mysql-server 命令(或 dnf-enabled 系统中的 dnf upgrade mysql-server)。
在使用 Yum 仓库更新 MySQL 之后,使用旧版本共享客户端库编译的应用程序应该继续工作。但是,如果您想重新编译应用程序并动态链接到更新的库,请参阅 升级共享客户端库,了解一些特殊注意事项。
对于基于 EL7 的平台: 参阅 基于 EL7 的平台的兼容性信息。