2.5.1 Linux上使用MySQL Yum仓库安装 MySQL
Oracle Linux、Red Hat Enterprise Linux、CentOS 和 Fedora 的MySQL Yum 仓库提供了 RPM 包用于安装 MySQL 服务器、客户端、MySQL Workbench、MySQL Utilities、MySQL Router、MySQL Shell、Connector/ODBC 和 Connector/Python 等产品(不一定所有包都可用于所有发行版;详见使用 Yum 安装 MySQL 产品和组件)。
作为一个流行的开源软件,MySQL 在其原始或重新打包形式下广泛安装在许多系统上,从不同的软件下载站点、软件仓库等处获得。以下指令假设您的系统未使用第三方分发 RPM 包安装 MySQL;如果不是这样,请遵循替换 native 第三方分布式 MySQL中的指令。
仓库设置 RPM 文件名以 mysql84
开头,描述了启用默认安装的 MySQL 系列。在这种情况下,默认启用的是 MySQL 8.4 LTS 子仓库,还包含其他子仓库版本,如 MySQL 8.0 和 MySQL Innovation Series,这些版本默认禁用。
请按照以下步骤选择并安装最新的 MySQL 产品:
-
将 MySQL Yum 存储库添加到您的系统存储库列表中。这通常是一次性操作,通过安装由 MySQL 提供的 RPM 文件来完成。按照以下步骤进行:
-
从 MySQL Yum 存储库页面 (https://dev.mysql.com/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' 表示企业 Linux,'fc' 表示 Fedora,并且以平台的基础版本号结尾。 -
{version-number}
: MySQL 存储库配置 RPM 的版本号,因为它们会 occasional 更新。
安装您下载的 RPM 文件,例如:
$> sudo yum localinstall mysql84-community-release-{platform}-{version-number}.noarch.rpm
安装命令将添加 MySQL Yum 存储库到您的系统存储库列表中,并下载 GnuPG 密钥以检查软件包的完整性。请参阅 第 2.1.4.2 节,“使用 GnuPG 检查签名”,以获取关于 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版本默认启用。选择不同的发布系列,例如innovation track(当前是8.3)或之前的系列(如MySQL 8.0),的方法在下面描述。
-
Note一旦在您的系统上启用了MySQL Yum存储库,您可以使用yum update命令(或dnf upgrade命令对于dnf-启用的系统)升级MySQL包并将任何本地第三方包替换为Yum在MySQL Yum存储库中找到的一些替代品;请参阅第 3.8 节,“使用 MySQL Yum 存储库升级 MySQL”,了解可能对您的系统产生的影响,请参阅升级共享客户端库。
-
-
使用 MySQL Yum 存储库时,默认情况下选择最新的 bugfix 系列(当前是 MySQL 8.4)。如果这是您想要的,您可以跳过到下一步安装 MySQL。
在 MySQL Yum 存储库中,每个 MySQL Community Server 发布系列都 hosted 在不同的子存储库中。最新的 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系列的bug子仓库,并启用该系列的子仓库,然后运行安装命令。如果您的平台支持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
Alternatively, you can manually edit the
/etc/yum.repos.d/mysql-community.repo
file by toggling theenabled
option. For example, a typical default entry for 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
-
(EL8系统仅) EL8基于的系统,如RHEL8和Oracle Linux 8,包括一个默认启用的MySQL模块。除非禁用该模块,它将屏蔽MySQL仓库提供的包。要禁用包含的模块并使MySQL仓库包可见,请使用以下命令(对于dnf启用系统,replaceyum在命令中与dnf):
$> sudo yum module disable mysql
-
安装 MySQL
使用以下命令安装MySQL(对于dnf启用系统,replaceyum在命令中与dnf):
$> sudo yum install mysql-community-server
这将安装MySQL服务器的包(
mysql-community-server
),同时也包括运行服务器所需的组件包,包括客户端包(mysql-community-client
)、客户端和服务器公共错误消息和字符集包(mysql-community-common
)、共享客户端库包(mysql-community-libs
)。 -
使用以下命令启动MySQL服务器:
$> systemctl start mysqld
您可以使用以下命令检查MySQL服务器的状态:
$> systemctl status mysqld
如果操作系统启用了systemd,标准systemctl(或alternatively,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!';
Notevalidate_password
默认安装。validate_password
实现的默认密码策略要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总长度至少为 8 个字符。
关于 postinstallation 程序的更多信息,请见第2.9节,“Postinstallation Setup and Testing”。
EL7 平台的兼容性信息:从 MySQL Yum 仓库安装 MySQL 服务器后,您不能安装以下 RPM 包(反之亦然),这些包来自平台的 native 软件仓库。
-
akonadi-mysql
您可以使用 Yum 安装和管理 MySQL 的个别组件。一些这些组件在 MySQL Yum 仓库的子仓库中托管,例如 MySQL Connectors 在 MySQL Connectors 社区子仓库中,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
除了安装外,您还可以使用MySQL Yum存储库对MySQL产品和组件进行更新。见第3.8节,“Upgrading MySQL with the MySQL Yum Repository”了解详细信息。
如果您已经安装了第三方MySQL分布式系统,从本地软件仓库(即由您的Linux发行版提供的软件仓库)中安装,请按照以下步骤进行:
-
为了避免数据丢失,始终在使用MySQL Yum存储库替换MySQL安装时备份数据库。见第9章,《Backup and Recovery》了解如何备份数据库。
-
将MySQL Yum存储库添加到系统的仓库列表中,按照Adding the MySQL Yum Repository中的指令进行操作。
-
根据设计,MySQL Yum 存储库在执行yum update(或dnf upgrade对于dnf启用系统)命令时,将替换您的本地、第三方 MySQL 到 MySQL Yum 存储库的最新 bugfix 版本(或执行yum update mysql-server(或dnf upgrade mysql-server对于dnf启用系统)。
使用 Yum 存储库更新 MySQL 后,编译于更老版本共享客户端库的应用程序仍将继续工作。然而,如果您想重新编译应用程序并动态链接它们与更新的库,见升级共享客户端库,了解一些特殊考虑。
对于 EL7 基础平台:见EL7 基础平台兼容性信息。