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  /  ...  /  Using the MySQL SLES Repository

2.5.3 使用 MySQL SLES 存储库

MySQL SLES 存储库提供 RPM 包用于在 SUSE Enterprise Linux Server 上安装和管理 MySQL 服务器、客户端和其他组件。该部分包含获取和安装这些包的信息。

将官方 MySQL SLES 存储库添加到您的系统存储库列表中:

Note

配置文件名称的开头部分,例如mysql84,描述了默认启用的 MySQL 系列。例如,在本例中,默认启用的是 MySQL 8.4 LTS 的子存储库,还包含其他子存储库版本,如 MySQL 8.0 和 MySQL Innovation Series。

如果 MySQL 存储库尚未在系统上存在:

  1. 访问 MySQL SLES 存储库下载页面:https://dev.mysql.com/downloads/repo/suse/

  2. 选择并下载适合您的 SLES 版本的发布包。

  3. 使用以下命令安装下载的发布包,替换package-name为下载包的名称:

    $> sudo rpm -Uvh package-name.rpm

    例如,在安装 SLES 15 包时,其中#表示版本号,如15-1

    $> sudo rpm -Uvh mysql84-community-release-sl15-#.noarch.rpm

如果已经存在较旧的版本,则更新它:

  • $> sudo zypper update mysql84-community-release
  • 虽然这不是每个MySQL版本都需要的,但是它确实会更新MySQL存储库信息,以包含当前信息。例如,mysql84-community-release-sl15-7.noarch.rpm 是第一个SUSE 15存储库配置文件,它添加了从MySQL 8.1系列开始的innovation发布跟踪。

在MySQL SLES存储库中,MySQL Community Server的不同发布系列位于不同的子存储库中。最新的bugfix系列(当前是MySQL 8.4)的子存储库默认启用,而其他系列的子存储库默认禁用。使用以下命令可以查看MySQL SLES存储库中的所有子存储库,并查看哪些子存储库已启用或禁用:

$> zypper repos | grep mysql.*community

innovation跟踪对于SLES 15可用,例如mysql-innovation-community

在安装最新版本之前,请确保您想要的系列的子存储库已启用,而其他系列的子存储库已禁用。例如,在SLES 15上, disable MySQL 8.4服务器和工具的默认启用的子存储库,可以使用以下命令:

$> sudo zypper modifyrepo -d mysql-8.4-lts-community
$> sudo zypper modifyrepo -d mysql-tools-community

然后,启用您想要的发布系列的子存储库。例如,在SLES 15上启用innovation跟踪:

$> sudo zypper modifyrepo -e mysql-innovation-community
$> sudo zypper modifyrepo -e mysql-tools-innovation-community

在任何时间,只能启用一个发布系列的子存储库。

验证正确的子存储库已启用,可以运行以下命令并检查其输出:

$> zypper repos -E | grep mysql.*community

 7 | mysql-connectors-community       | MySQL Connectors Community                  | Yes     | (r ) Yes  | No
10 | mysql-innovation-community       | MySQL Innovation Release Community Server   | Yes     | (r ) Yes  | No
16 | mysql-tools-innovation-community | MySQL Tools Innovation Community            | Yes     | ( p) Yes  | No

然后,使用以下命令刷新启用的子存储库的存储库信息:

$> sudo zypper refresh

使用 Zypper 安装 MySQL

在启用官方 MySQL 仓库后,安装 MySQL 服务器:

$> sudo zypper install mysql-community-server

这将安装 MySQL 服务器的包,以及其他必要的包。

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

$> systemctl start mysql

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

$> systemctl status mysql

如果操作系统启用了 systemd,标准systemctl(或alternatively,service with the arguments reversed) 命令,如stopstartstatusrestart,用于管理 MySQL 服务器服务。MySQL 服务默认启用,并在系统重启时启动。请参阅第2.5.9节,“使用 systemd 管理 MySQL 服务器”,了解更多信息。

MySQL 服务器初始化:当服务器首次启动时,服务器将被初始化,并发生以下事件(如果服务器数据目录为空):

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

  • 安装并启用validate_password 插件

  • 创建了超级用户账户'root'@'localhost',并将其密码存储在错误日志文件中。要查看密码,请使用以下命令:

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

    尽快更改 root 密码,使用生成的临时密码登录,然后为超级用户账户设置自定义密码:

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

MySQL 的validate_password插件默认安装。这将要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总长度至少为 8 个字符。

可以使用以下命令停止 MySQL 服务器:

$> sudo systemctl stop mysql

您可以安装更多的 MySQL 组件。使用以下命令列出 MySQL SLES 存储库中的子存储库:

$> zypper repos | grep mysql.*community

使用以下命令列出某个子存储库中可用的 MySQL 组件包,替换subrepo-name为您感兴趣的子存储库名称:

$> zypper packages subrepo-name

使用以下命令安装任意包,您需要将package-name替换为包名(可能需要首先启用该包所在的子存储库,使用Selecting a Release Series中描述的方法):"

$> sudo zypper install package-name

例如,要安装来自您已经启用的发布系列子存储库中的 MySQL 测试套件:

$> sudo zypper install mysql-community-bench

使用 MySQL SLES 仓库升级 MySQL

Note
  • 在对 MySQL 进行任何更新操作之前,请仔细阅读第 3 章:升级 MySQL中的说明。其中特别重要的是在更新前备份数据库。

使用 MySQL SLES 仓库执行 in-place 更新(即将旧版本的服务器替换为新版本,然后使用旧数据文件运行新版本),按照以下步骤进行(假设您已经安装了使用 MySQL SLES 仓库安装的 MySQL;如果不是,请遵循从其他源安装 RPM 的 MySQL中的说明):

  1. 在更新操作期间,默认情况下,MySQL SLES 仓库将更新 MySQL 到您在安装时选择的发布系列中最新版本(请参阅选择发布系列以获取详细信息),这意味着。例如,一个 bugfix 系列安装,如 8.4,将不会更新到创新系列,如 8.3。要更新到另一个发布系列,您需要首先禁用该系列的子仓库(默认情况下或您自己选择)并启用目标系列的子仓库。要执行该操作,请遵循选择发布系列中的一般说明。

    总的来说,升级到另一个发布系列时,通常应该跳过当前系列,而不是直接跳到下一个系列。

    Important

    MySQL SLES 仓库不支持在-place 下降。请按照第4章:降级 MySQL中的说明进行操作。

  2. 升级 MySQL

    使用以下命令升级 MySQL 和其组件:

    $> sudo zypper update mysql-community-server

    或者,您可以告诉 Zypper 更新您的整个系统(这可能需要更长的时间):

    $> sudo zypper update

您也可以只更新特定的组件。使用以下命令列出来自 MySQL SLES 仓库的所有已安装包:

$> zypper packages -i | grep mysql-.*community

在确定要更新的包名后,使用以下命令更新该包,替换package-name为包名:

$> sudo zypper update package-name

可以从 MySQL 的开发者区、SLES 本地软件仓库或 MySQL SLES 仓库下载安装 MySQL 社区服务器和其组件的 RPM。来自这些源的 RPM 可能不同,可能在不同的方式下安装和配置 MySQL。

如果您使用来自 MySQL 开发者区或 SLES 本地软件仓库安装的 RPM,并想使用来自 MySQL SLES 仓库的 RPM 替换安装,请按照以下步骤进行操作:

  1. 备份您的数据库以避免数据丢失。请参阅第9章:备份和恢复了解如何进行备份。

  2. 如果 MySQL Server 运行中,请停止它。如果服务器作为服务运行,可以使用以下命令停止它:

    $> systemctl stop mysql

  3. 按照添加 MySQL SLES 仓库中的步骤进行操作。

  4. 按照选择发布系列中的步骤进行操作。

  5. 按照使用 Zypper 安装 MySQL中的步骤进行操作。在安装过程中,您将被询问是否要替换旧的包;例如:

    Problem: mysql-community-server-5.6.22-2.sles11.x86_64 requires mysql-community-client = 5.6.22-2.sles11,
      but this requirement cannot be provided uninstallable providers:
      mysql-community-client-5.6.22-2.sles11.x86_64[mysql56-community]
     Solution 1: replacement of mysql-client-5.5.31-0.7.10.x86_64 with mysql-community-client-5.6.22-2.sles11.x86_64
     Solution 2: do not install mysql-community-server-5.6.22-2.sles11.x86_64
     Solution 3: break mysql-community-server-5.6.22-2.sles11.x86_64 by ignoring some of its dependencies
    
    Choose from above solutions by number or cancel [1/2/3/c] (c)

    选择““replacement””选项(在示例中是““Solution 1””)以完成从 MySQL SLES 仓库安装 MySQL 的过程。

使用 SLES 仓库安装 MySQL NDB 集群

  • 以下步骤假设您的系统上既没有安装 MySQL Server 也没有安装 MySQL NDB 集群;如果情况不同,请在继续之前删除 MySQL Server 或 MySQL NDB 集群,包括所有可执行文件、库、配置文件、日志文件和数据目录。但是,您不需要删除您可能用于启用 MySQL SLES 仓库的发布包。

  • NDB 集群 Auto-Installer 包依赖于python2-cryptopython-paramiko 包。Zypper 可以在您的系统上启用 Python 仓库的情况下自动处理这个依赖关系。

在 MySQL SLES 存储库中,MySQL Community Server 和 MySQL NDB Cluster 分别位于不同的子存储库中。默认情况下,最新的 MySQL 服务器 bugfix 系列的子存储库是启用的,而 NDB 集群的子存储库是禁用的。要安装 NDB 集群,请禁用 MySQL 服务器的子存储库并启用 NDB 集群的子存储库。例如,可以使用以下命令禁用默认启用的 MySQL 8.4 子存储库:

$> sudo zypper modifyrepo -d mysql-8.4-lts-community

然后,启用 NDB 集群的子存储库:

$> sudo zypper modifyrepo -e mysql-cluster-8.4-community

验证正确的子存储库是否已启用,请运行以下命令并检查其输出:

$> zypper repos -E | grep mysql.*community
10 | mysql-cluster-8.4-community | MySQL Cluster 8.4 Community | Yes     | No

完成后,请使用以下命令刷新启用的子存储库的存储库信息:

$> sudo zypper refresh

安装 MySQL NDB 集群

进行最小安装的 MySQL NDB 集群,请按照以下步骤操作:

  • 安装 SQL 节点组件:

    $> sudo zypper install mysql-cluster-community-server

    安装完成后,启动并初始化 SQL 节点,按照启动 MySQL 服务器中的步骤进行操作。

    如果您选择使用mysqld --initialize命令手动初始化数据目录(请参阅第2.9.1节,“ Initializing the Data Directory”了解详细信息),将生成并存储在SQL节点的错误日志中一个root密码;请参阅启动MySQL服务器了解如何找到密码,以及关于它的一些需要知道的事情。

  • 安装管理节点的可执行文件:

    $> sudo zypper install mysql-cluster-community-management-server
  • 安装数据节点的可执行文件:

    $> sudo zypper install mysql-cluster-community-data-node

要安装更多NDB集群组件,请参阅安装其他MySQL产品和组件

请参阅第25.3.3节,“NDB集群的初始配置”了解如何配置MySQL NDB集群,以及第25.3.4节,“NDB集群的第一次启动”了解如何在第一次启动时启动它。

您可以使用 Zypper 安装 MySQL NDB 集群的单个组件和额外产品,从 MySQL SLES 仓库中安装。假设您已经将 MySQL SLES 仓库添加到系统的仓库列表中(如果没有,请按照使用 SLES 仓库安装 MySQL NDB 集群的步骤 1 和 2),然后按照安装 MySQL NDB 集群产品和组件中的步骤进行操作。

Note

已知问题:当前,MySQL NDB 集群测试套件包(mysql-cluster-community-test)安装时,不会自动安装所有运行 MySQL NDB 集群测试套件所需的组件。使用zypper install命令在运行测试套件之前安装以下包:

  • mysql-cluster-community-auto-installer

  • mysql-cluster-community-management-server

  • mysql-cluster-community-data-node

  • mysql-cluster-community-memcached

  • mysql-cluster-community-java

  • mysql-cluster-community-ndbclient-devel