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

2.5.3 使用 MySQL SLES 仓库

添加 MySQL SLES 仓库

MySQL SLES 仓库提供了用于安装和管理 MySQL 服务器、客户端和其他组件的 RPM 软件包在 SUSE Enterprise Linux Server 上。

添加或更新官方 MySQL SLES 仓库到系统的仓库列表中:

Note

仓库文件名中的 "mysql80" 表示 MySQL 8.0 系列默认启用,但也包括可选的 "创新" 轨道,从 MySQL 8.1 开始。

新 MySQL 仓库安装

如果 MySQL 仓库尚未出现在系统上,则:

  1. 转到 MySQL SLES 仓库的下载页面:https://dev.mysql.com/downloads/repo/suse/

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

  3. 使用以下命令安装下载的发行包,replace package-name with the name of the downloaded package:

    $> sudo rpm -Uvh package-name.rpm

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

    $> sudo rpm -Uvh mysql80-community-release-sl15-#.noarch.rpm
更新现有的 MySQL 仓库安装

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

  • $> sudo zypper update mysql80-community-release
  • 虽然这不是每个 MySQL 版本所需的,但它确实更新了 MySQL 仓库信息以包括当前信息。例如,mysql80-community-release-sl15-7.noarch.rpm 是 SUSE 15 的第一个仓库配置文件,它添加了从 MySQL 8.1 系列开始的创新版本轨道。

选择发布系列

在 MySQL SLES 仓库中,不同的发布系列的 MySQL 社区服务器托管在不同的子仓库中。最新的 bugfix 系列(当前是 MySQL 8.0)的子仓库默认启用,而其他系列的子仓库禁用。使用以下命令查看 MySQL SLES 仓库中的所有子仓库,并查看哪些启用或禁用:

$> zypper repos | grep mysql.*community

创新轨道可用于 SLES 15,从 MySQL 8.1 开始,例如 mysql-innovation-community

要安装特定系列的最新版本,在运行安装命令之前,确保要安装的系列的子仓库启用,而其他系列的子仓库禁用。例如,在 SLES 15 上,要禁用 MySQL 8.0 服务器和工具的子仓库,使用以下命令:

$> sudo zypper modifyrepo -d mysql80-community
$> sudo zypper modifyrepo -d mysql-tools-community

然后,启用要安装的系列的子仓库。例如,要在 SLES 15 上启用创新轨道:

$> 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 服务器

使用以下命令启动 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

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

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

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

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

$> sudo systemctl stop mysql

安装其他 MySQL 产品和组件

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

$> zypper repos | grep mysql.*community

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

$> zypper packages subrepo-name

使用以下命令安装您选择的包,替换 package-name 为包的名称(您可能需要首先启用子存储库,以便选择特定的发行系列,如 选择发行系列 中所述):

$> sudo zypper install package-name

例如,要安装 MySQL 基准测试套件,从您已经启用的发行系列的子存储库中:

$> sudo zypper install mysql-community-bench

使用 MySQL SLES 存储库升级 MySQL

Note
  • 在执行任何 MySQL 更新之前,请按照 第 3 章 升级 MySQL 中的说明进行操作。在那里讨论的其他说明中,特别重要的是在更新之前备份您的数据库。

使用 MySQL SLES 存储库执行就地更新(即,替换旧版本的服务器,然后使用旧数据文件运行新版本),按照以下步骤操作(假设您已经使用 MySQL SLES 存储库安装了 MySQL;如果不是这种情况,请按照 替换其他来源的 RPM 安装的 MySQL 中的说明操作):

  1. 选择目标系列

    在更新操作期间,默认情况下,MySQL SLES 存储库将 MySQL 更新到您选择的发行系列的最新版本(请参阅 选择发行系列 了解详细信息),这意味着。例如,bugfix 系列安装,例如 8.0,不会更新到创新系列,例如 8.3。要更新到另一个发行系列,您需要首先禁用当前选择的子存储库,然后启用目标系列的子存储库。按照 选择发行系列 中的通用说明操作。

    通常情况下,要从一个版本系列升级到另一个版本系列,需要升级到下一个系列,而不是跳过一个系列。

    Important
  2. 升级 MySQL

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

    $> sudo zypper update mysql-community-server

    或者,您可以使用 Zypper 更新系统上的所有内容(这可能需要更长的时间):

    $> sudo zypper update

您也可以仅更新特定组件。使用以下命令列出 MySQL SLES 存储库中的所有已安装包:

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

然后,确定要更新的组件的包名,并使用以下命令更新该包,replace package-name with the name of the package:

$> sudo zypper update package-name

替换其他来源的 RPM 安装的 MySQL

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

如果您已经使用来自 MySQL 开发者区域或 SLES 的本机软件存储库的 RPM 安装了 MySQL,并且想使用 MySQL SLES 存储库的 RPM 替换安装,按照以下步骤操作:

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

  2. 停止您的 MySQL 服务器,如果它正在运行。如果服务器作为服务运行,可以使用以下命令停止它:

    $> 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 选项(例如,解决方案 1)以完成从 MySQL SLES 存储库的安装。

使用 SLES 存储库安装 MySQL NDB 集群

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

  • NDB 集群自动安装程序包依赖于 python2-cryptopython-paramiko 包。Zypper 可以处理这个依赖项,如果 Python 存储库已经在您的系统上启用。

选择 MySQL NDB 集群子存储库

在 MySQL SLES 存储库中,MySQL 社区服务器和 MySQL NDB 集群托管在不同的子存储库中。默认情况下,最新的 bugfix 系列的 MySQL 服务器子存储库是启用的,而 MySQL NDB 集群子存储库是禁用的。要安装 NDB 集群,禁用 MySQL 服务器子存储库并启用 NDB 集群子存储库。例如,禁用 MySQL 8.0 子存储库(默认情况下启用):

$> sudo zypper modifyrepo -d mysql80-community

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

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

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

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

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

$> sudo zypper refresh

安装 MySQL NDB 集群

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

  • 安装 SQL 节点的组件:

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

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

    如果您选择手动初始化数据目录使用 mysqld --initialize 命令(请参阅 第 2.9.1 节,“初始化数据目录” 了解详细信息),则将生成并存储根密码在 SQL 节点的错误日志中;请参阅 启动 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 集群的第一次启动” 以了解如何第一次启动它。

安装其他 MySQL NDB 集群产品和组件

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

Note

已知问题: 目前,不是所有用于运行 MySQL NDB 集群测试套件的组件都将在安装测试套件包 (mysql-cluster-community-test) 时自动安装。在运行测试套件之前,请使用 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