### 2.5.1 使用 MySQL Yum 存储库在 Linux 上安装 MySQL [](<>)[](<>) 这[MySQL Yum 存储库](https://dev.mysql.com/downloads/repo/yum/)为 Oracle Linux、Red Hat Enterprise Linux、CentOS 和 Fedora 提供 RPM 包,用于安装 MySQL 服务器、客户端、MySQL Workbench、MySQL Utilities、MySQL Router、MySQL Shell、Connector/ODBC、Connector/Python 等(并非所有包适用于所有发行版;请参阅[使用 Yum 安装其他 MySQL 产品和组件](linux-installation-yum-repo.html#yum-install-components)详情)。 #### 在你开始前 作为一种流行的开源软件,MySQL 以其原始或重新打包的形式广泛安装在来自各种来源的许多系统上,包括不同的软件下载站点、软件存储库等。以下说明假设 MySQL 尚未使用第三方分发的 RPM 包安装在您的系统上;如果不是这种情况,请按照[第 2.11.7 节,“使用 MySQL Yum 存储库升级 MySQL”](updating-yum-repo.html)要么[使用 MySQL Yum 存储库替换 MySQL 的第三方发行版](https://dev.mysql.com/doc/refman/5.7/en/replace-third-party-yum.html). #### 全新安装 MySQL 的步骤 请按照以下步骤使用 MySQL Yum 存储库安装最新的 GA 版本的 MySQL: 1. #### [](<>)添加 MySQL Yum 存储库 首先,将 MySQL Yum 存储库添加到系统的存储库列表中。这是一次性操作,可以通过安装 MySQL 提供的 RPM 来执行。按着这些次序: 1. 转到下载 MySQL Yum 存储库页面 () 在 MySQL 开发者专区。 2. 为您的平台选择并下载发布包。 3. 使用以下命令安装下载的发行包,替换*`平台和版本特定的包名称`*使用下载的 RPM 包的名称: ``` $> sudo yum install platform-and-version-specific-package-name.rpm ``` 对于基于 EL6 的系统,该命令的格式为: ``` $> sudo yum install mysql80-community-release-el6-{version-number}.noarch.rpm ``` 对于基于 EL7 的系统: ``` $> sudo yum install mysql80-community-release-el7-{version-number}.noarch.rpm ``` 对于基于 EL8 的系统: ``` $> sudo yum install mysql80-community-release-el8-{version-number}.noarch.rpm ``` 对于 Fedora 35: ``` $> sudo dnf install mysql80-community-release-fc35-{version-number}.noarch.rpm ``` 对于 Fedora 34: ``` $> sudo dnf install mysql80-community-release-fc34-{version-number}.noarch.rpm ``` 安装命令将 MySQL Yum 存储库添加到系统的存储库列表中,并下载 GnuPG 密钥以检查软件包的完整性。看[第 2.1.4.2 节,“使用 GnuPG 进行签名检查”](checking-gpg-signature.html)有关 GnuPG 密钥检查的详细信息。 您可以通过以下命令检查MySQL Yum存储库是否已成功添加(对于启用dnf的系统,请替换**百胜**在命令中**dnf**): ``` $> yum repolist enabled | grep "mysql.*-community.*" ``` 笔记 在您的系统上启用 MySQL Yum 存储库后,由**百胜更新**命令(或**dnf升级**对于启用 dnf 的系统)升级系统上的 MySQL 包并替换任何本地第三方包,如果 Yum 在 MySQL Yum 存储库中找到它们的替代品;看[第 2.11.7 节,“使用 MySQL Yum 存储库升级 MySQL”](updating-yum-repo.html), 有关它对您系统的一些可能影响的讨论,请参阅[升级共享客户端库](updating-yum-repo.html#updating-yum-repo-client-lib). 2. #### [](<>)选择发布系列 使用 MySQL Yum 仓库时,默认选择最新的 GA 系列(目前是 MySQL 8.0)进行安装。如果这是你想要的,你可以跳到下一步,[安装 MySQL](linux-installation-yum-repo.html#yum-repo-installing-mysql). 在 MySQL Yum 存储库中,MySQL 社区服务器的不同版本系列托管在不同的子存储库中。最新的 GA 系列(目前是 MySQL 8.0)的子库默认启用,所有其他系列(例如 MySQL 8.0 系列)的子库默认禁用。使用此命令可以查看 MySQL Yum 存储库中的所有子存储库,并查看其中哪些已启用或已禁用(对于启用 dnf 的系统,请替换**百胜**在命令中**dnf**): ``` $> yum repolist all | grep mysql ``` 要安装最新 GA 系列的最新版本,无需配置。要安装最新 GA 系列以外的特定系列的最新版本,请在运行安装命令之前禁用最新 GA 系列的子存储库并启用特定系列的子存储库。如果您的平台支持**百胜配置管理器**,您可以通过发出以下命令来做到这一点,这些命令会禁用 5.7 系列的子存储库并启用 8.0 系列的子存储库: ``` $> sudo yum-config-manager --disable mysql57-community $> sudo yum-config-manager --enable mysql80-community ``` 对于支持 dnf 的平台: ``` $> sudo dnf config-manager --disable mysql57-community $> sudo dnf config-manager --enable mysql80-community ``` 除了使用**百胜配置管理器**或者**dnf 配置管理器**命令,您还可以通过手动编辑来选择发布系列`/etc/yum.repos.d/mysql-community.repo`文件。这是文件中发布系列的子存储库的典型条目: ``` [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql ``` 找到您要配置的子存储库的条目,然后编辑`启用`选项。指定`启用=0`禁用子存储库,或`启用=1`启用子存储库。例如,要安装 MySQL 8.0,请确保您有`启用=0`对于 MySQL 5.7 的上述子存储库条目,并具有`启用=1`对于 8.0 系列的条目: ``` # Enable to use MySQL 8.0 [mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql ``` 您应该在任何时候只为一个版本系列启用子存储库。当启用多个发行系列的子存储库时,Yum 使用最新的系列。 通过运行以下命令并检查其输出来验证是否启用和禁用了正确的子存储库(对于启用 dnf 的系统,请替换**百胜**在命令中**dnf**): ``` $> yum repolist enabled | grep mysql ``` 3. #### [](<>)禁用默认 MySQL 模块 (仅限 EL8 系统)基于 EL8 的系统(例如 RHEL8 和 Oracle Linux 8)包含默认启用的 MySQL 模块。除非禁用此模块,否则它会屏蔽 MySQL 存储库提供的包。要禁用包含的模块并使 MySQL 存储库包可见,请使用以下命令(对于启用 dnf 的系统,替换**百胜**在命令中**dnf**): ``` $> sudo yum module disable mysql ``` 4. #### [](<>)安装 MySQL 通过以下命令安装 MySQL(对于启用 dnf 的系统,请替换**百胜**在命令中**dnf**): ``` $> sudo yum install mysql-community-server ``` 这将安装 MySQL 服务器的软件包(`mysql-社区服务器`) 以及运行服务器所需的组件包,包括客户端的包 (`mysql-社区-客户端`)、客户端和服务器的常见错误消息和字符集 (`mysql-community-common`) 和共享客户端库 (`mysql 社区库`)。 5. #### [](<>)启动 MySQL 服务器 使用以下命令启动 MySQL 服务器: ``` $> systemctl start mysqld ``` 您可以使用以下命令检查 MySQL 服务器的状态: ``` $> systemctl status mysqld ``` 如果操作系统启用了 systemd,则标准**系统控制**(或者,**服务**参数颠倒)命令,例如**停止**,**开始**,**状态**, 和[**重新开始**](restart.html)应该用于管理 MySQL 服务器服务。这`mysqld`服务默认启用,并在系统重新启动时启动。看[第 2.5.9 节,“使用 systemd 管理 MySQL 服务器”](using-systemd.html)了解更多信息。 在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况: - 服务器已初始化。 - SSL 证书和密钥文件在数据目录中生成。 - [`验证密码`](validate-password.html)已安装并启用。 - 超级用户帐户`'根'@'本地主机`被建造。超级用户的密码已设置并存储在错误日志文件中。要显示它,请使用以下命令: ``` $> sudo grep 'temporary password' /var/log/mysqld.log ``` 通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改 root 密码: ``` $> mysql -uroot -p ``` ``` mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; ``` 笔记 [`验证密码`](validate-password.html)默认安装。实现的默认密码策略`验证密码`要求密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符,并且密码总长度至少为 8 个字符。 有关安装后过程的详细信息,请参阅[第 2.10 节,“安装后设置和测试”](postinstallation.html). 笔记 [](<>) *基于 EL7 的平台的兼容性信息:*来自平台本机软件存储库的以下 RPM 包与安装 MySQL 服务器的 MySQL Yum 存储库中的包不兼容。使用 MySQL Yum 存储库安装 MySQL 后,您将无法安装这些软件包(反之亦然)。 - akonadi-mysql #### 使用 Yum 安装其他 MySQL 产品和组件 您可以使用 Yum 安装和管理 MySQL 的各个组件。其中一些组件托管在 MySQL Yum 存储库的子存储库中:例如,MySQL 连接器位于 MySQL 连接器社区子存储库中,而 MySQL 工作台位于 MySQL 工具社区中。您可以使用以下命令列出 MySQL Yum 存储库中适用于您的平台的所有 MySQL 组件的包(对于启用 dnf 的系统,请替换**百胜**在命令中**dnf**): ``` $> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available ``` 使用以下命令安装您选择的任何软件包,替换*`包裹名字`*带有包的名称(对于启用 dnf 的系统,替换**百胜**在命令中**dnf**): ``` $> sudo yum install package-name ``` 例如,要在 Fedora 上安装 MySQL Workbench: ``` $> sudo dnf install mysql-workbench-community ``` 要安装共享客户端库(对于启用 dnf 的系统,请替换**百胜**在命令中**dnf**): ``` $> sudo yum install mysql-community-libs ``` #### 平台特定说明 ARM 支持 Oracle Linux 7 支持 ARM 64 位 (aarch64),需要 Oracle Linux 7 Software Collections Repository (ol7\_软件\_集合)。例如,要安装服务器: ``` $> yum-config-manager --enable ol7_software_collections $> yum install mysql-community-server ``` 笔记 自 MySQL 8.0.12 起,Oracle Linux 7 支持 ARM 64 位 (aarch64)。 已知限制 8.0.12 版本需要您调整*libstdc++7*通过执行路径`ln -s /opt/oracle/oracle-armtoolset-1/root/usr/lib64 /usr/lib64/gcc7`执行后`百胜安装`步。 #### 使用 Yum 更新 MySQL 除了安装之外,您还可以使用 MySQL Yum 存储库对 MySQL 产品和组件执行更新。看[第 2.11.7 节,“使用 MySQL Yum 存储库升级 MySQL”](updating-yum-repo.html)详情。