Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Installing MySQL on Linux Using the MySQL Yum Repository

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

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 发行版 中的说明进行操作。

Note

存储库设置 RPM 文件名以 mysql80-community 开头,以突出显示默认活动的 MySQL 子存储库,即当前的 MySQL 8.0 版本。它们还安装了 MySQL 创新跟踪的子存储库,允许安装和升级 MySQL 8.3 创新版本。

MySQL 的新安装步骤

按照以下步骤选择和安装最新的 MySQL 产品:

  1. 添加 MySQL Yum 存储库

    将 MySQL Yum 存储库添加到系统的存储库列表中。这通常是一个一次性的操作,通过安装 MySQL 提供的 RPM 来完成。按照以下步骤操作:

    1. 从 MySQL Developer Zone 的 MySQL Yum 存储库页面 下载 RPM。

    2. 选择并下载适合您平台的发行包。

    3. 安装下载的发行包。文件格式为:

      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”,关于这对您的系统可能产生的影响的讨论,见 升级共享客户端库

  2. 选择版本系列

    使用 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-managerdnf 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 文件,通过 toggling enabled 选项。例如,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
  3. 禁用默认的 MySQL 模块

    (仅 EL8 系统) EL8 基础系统,如 RHEL8 和 Oracle Linux 8,包括一个默认启用的 MySQL 模块。除非禁用该模块,否则它将屏蔽 MySQL 存储库提供的包。要禁用该模块并使 MySQL 存储库包可见,请使用以下命令(对于 dnf-enabled 系统,请将命令中的 yum 替换为 dnf):

    $> sudo yum module disable mysql
  4. 安装 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)。

  5. 启动 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!';
    Note

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

有关后安装过程的更多信息,请参阅 第 2.9 节,“后安装设置和测试”

Note

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 发行版,请按照以下步骤操作:

  1. 备份数据库

    为了避免数据丢失,在尝试使用 MySQL Yum 仓库替换 MySQL 安装之前,请始终备份数据库。请参阅 第 9 章 备份和恢复,了解如何备份数据库。

  2. 添加 MySQL Yum 仓库

    按照 添加 MySQL Yum 仓库 中的说明将 MySQL Yum 仓库添加到系统的仓库列表中。

  3. 使用 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 之后,使用旧版本共享客户端库编译的应用程序应该继续工作。但是,如果您想重新编译应用程序并动态链接到更新的库,请参阅 升级共享客户端库,了解一些特殊注意事项。

Note

对于基于 EL7 的平台: 参阅 基于 EL7 的平台的兼容性信息