Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 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 仓库提供了 RPM 包用于安装 MySQL 服务器、客户端、MySQL Workbench、MySQL Utilities、MySQL Router、MySQL Shell、Connector/ODBC 和 Connector/Python 等产品(不一定所有包都可用于所有发行版;详见使用 Yum 安装 MySQL 产品和组件)。

作为一个流行的开源软件,MySQL 在其原始或重新打包形式下广泛安装在许多系统上,从不同的软件下载站点、软件仓库等处获得。以下指令假设您的系统未使用第三方分发 RPM 包安装 MySQL;如果不是这样,请遵循替换 native 第三方分布式 MySQL中的指令。

Note

仓库设置 RPM 文件名以 mysql84 开头,描述了启用默认安装的 MySQL 系列。在这种情况下,默认启用的是 MySQL 8.4 LTS 子仓库,还包含其他子仓库版本,如 MySQL 8.0 和 MySQL Innovation Series,这些版本默认禁用。

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

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

    1. 从 MySQL Yum 存储库页面 (https://dev.mysql.com/downloads/repo/yum/) 在 MySQL 开发者区下载。

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

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

      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”,了解可能对您的系统产生的影响,请参阅升级共享客户端库

  2. 使用 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-managerdnf 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 the enabled 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
  3. (EL8系统仅) EL8基于的系统,如RHEL8和Oracle Linux 8,包括一个默认启用的MySQL模块。除非禁用该模块,它将屏蔽MySQL仓库提供的包。要禁用包含的模块并使MySQL仓库包可见,请使用以下命令(对于dnf启用系统,replaceyum在命令中与dnf):

    $> sudo yum module disable mysql
  4. 安装 MySQL

    使用以下命令安装MySQL(对于dnf启用系统,replaceyum在命令中与dnf):

    $> sudo yum install mysql-community-server

    这将安装MySQL服务器的包(mysql-community-server),同时也包括运行服务器所需的组件包,包括客户端包(mysql-community-client)、客户端和服务器公共错误消息和字符集包(mysql-community-common)、共享客户端库包(mysql-community-libs)。

  5. 使用以下命令启动MySQL服务器:

    $> systemctl start mysqld

    您可以使用以下命令检查MySQL服务器的状态:

    $> systemctl status mysqld

如果操作系统启用了systemd,标准systemctl(或alternatively,service,参数顺序相反)命令,如stopstartstatusrestart,应该用于管理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 个字符。

关于 postinstallation 程序的更多信息,请见第2.9节,“Postinstallation Setup and Testing”

Note

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发行版提供的软件仓库)中安装,请按照以下步骤进行:

  1. 为了避免数据丢失,始终在使用MySQL Yum存储库替换MySQL安装时备份数据库。见第9章,《Backup and Recovery》了解如何备份数据库。

  2. 将MySQL Yum存储库添加到系统的仓库列表中,按照Adding the MySQL Yum Repository中的指令进行操作。

  3. 根据设计,MySQL Yum 存储库在执行yum update(或dnf upgrade对于dnf启用系统)命令时,将替换您的本地、第三方 MySQL 到 MySQL Yum 存储库的最新 bugfix 版本(或执行yum update mysql-server(或dnf upgrade mysql-server对于dnf启用系统)。

使用 Yum 存储库更新 MySQL 后,编译于更老版本共享客户端库的应用程序仍将继续工作。然而,如果您想重新编译应用程序并动态链接它们与更新的库,见升级共享客户端库,了解一些特殊考虑。

Note

对于 EL7 基础平台:EL7 基础平台兼容性信息