# 2.5.1 使用 MySQL Yum 存储库在 Linux 上安装 MySQL

MySQL Yum 存储库 (opens new window)为 Oracle Linux、Red Hat Enterprise Linux、CentOS 和 Fedora 提供 RPM 包,用于安装 MySQL 服务器、客户端、MySQL Workbench、MySQL Utilities、MySQL Router、MySQL Shell、Connector/ODBC、Connector/Python 等(并非所有包适用于所有发行版;请参阅使用 Yum 安装其他 MySQL 产品和组件详情)。

# 在你开始前

作为一种流行的开源软件,MySQL 以其原始或重新打包的形式广泛安装在来自各种来源的许多系统上,包括不同的软件下载站点、软件存储库等。以下说明假设 MySQL 尚未使用第三方分发的 RPM 包安装在您的系统上;如果不是这种情况,请按照第 2.11.7 节,“使用 MySQL Yum 存储库升级 MySQL”要么使用 MySQL Yum 存储库替换 MySQL 的第三方发行版 (opens new window).

# 全新安装 MySQL 的步骤

请按照以下步骤使用 MySQL Yum 存储库安装最新的 GA 版本的 MySQL:

  1. # 添加 MySQL Yum 存储库

    首先,将 MySQL Yum 存储库添加到系统的存储库列表中。这是一次性操作,可以通过安装 MySQL 提供的 RPM 来执行。按着这些次序:

    1. 转到下载 MySQL Yum 存储库页面 (https://dev.mysql.com/downloads/repo/yum/ (opens new window)) 在 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 进行签名检查”有关 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”, 有关它对您系统的一些可能影响的讨论,请参阅升级共享客户端库.

  2. # 选择发布系列

    使用 MySQL Yum 仓库时,默认选择最新的 GA 系列(目前是 MySQL 8.0)进行安装。如果这是你想要的,你可以跳到下一步,安装 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,则标准系统控制(或者,服务参数颠倒)命令,例如停止,开始,状态, 和重新开始应该用于管理 MySQL 服务器服务。这mysqld服务默认启用,并在系统重新启动时启动。看第 2.5.9 节,“使用 systemd 管理 MySQL 服务器”了解更多信息。

    在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况:

  • 服务器已初始化。

  • SSL 证书和密钥文件在数据目录中生成。

  • 验证密码已安装并启用。

  • 超级用户帐户'根'@'本地主机被建造。超级用户的密码已设置并存储在错误日志文件中。要显示它,请使用以下命令:

    $> sudo grep 'temporary password' /var/log/mysqld.log
    

    通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改 root 密码:

    $> mysql -uroot -p
    
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    

    笔记

    验证密码默认安装。实现的默认密码策略验证密码要求密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符,并且密码总长度至少为 8 个字符。

    有关安装后过程的详细信息,请参阅第 2.10 节,“安装后设置和测试”.

笔记

*基于 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”详情。