MySQL SLES 仓库提供 RPM 软件包,用于在 SUSE Enterprise Linux Server 上安装和管理 MySQL 服务器、客户端和其他组件。本节介绍如何获取和安装这些软件包。
为系统仓库列表添加或更新官方 MySQL SLES 仓库
配置文件名的开头部分,例如 mysql84
,描述了为安装启用的默认 MySQL 系列。在本例中,默认情况下启用了 MySQL 8.4 LTS 的子仓库。它还包含其他子仓库版本,例如 MySQL 8.0 和 MySQL 创新系列。MySQL 9.0 是当前的创新版。
新 MySQL 仓库安装
如果系统上尚未存在 MySQL 仓库,则
访问 MySQL SLES 仓库的下载页面:https://dev.mysqlserver.cn/downloads/repo/suse/.
选择并下载适合您的 SLES 版本的发行版软件包。
使用以下命令安装下载的发行版软件包,将
package-name
替换为下载的软件包的名称$> sudo rpm -Uvh package-name.rpm
例如,要安装 SLES 15 软件包,其中
#
表示版本中的发行版号,例如15-1
$> sudo rpm -Uvh mysql84-community-release-sl15-#.noarch.rpm
更新现有 MySQL 仓库安装
如果已经存在较旧的版本,则更新它
$> sudo zypper update mysql84-community-release
虽然这对于每个 MySQL 发行版来说不是必需的,但它会更新 MySQL 仓库信息以包含当前信息。例如,
mysql84-community-release-sl15-
是第一个 SUSE 15 仓库配置文件,它添加了从 MySQL 8.1 开始的创新发行版轨道。7
.noarch.rpm
在 MySQL SLES 仓库中,MySQL Community Server 的不同发行版系列托管在不同的子仓库中。最新修补程序系列(目前为 MySQL 8.4)的子仓库默认情况下处于启用状态,而所有其他系列的子仓库都处于禁用状态。使用此命令查看 MySQL SLES 仓库中的所有子仓库,以及哪些是启用或禁用状态
$> zypper repos | grep mysql.*community
创新轨道适用于 SLES 15,其中包含 mysql-innovation-community
等条目。
要安装特定系列的最新版本,在运行安装命令之前,请确保要安装的系列的子仓库已启用,而其他系列的子仓库已禁用。例如,在 SLES 15 上,要禁用默认情况下启用的 MySQL 8.4 服务器和工具的子仓库,请使用以下命令
$> sudo zypper modifyrepo -d mysql-8.4-lts-community
$> sudo zypper modifyrepo -d mysql-tools-community
然后,启用要安装的发行版系列的子仓库。例如,要在 SLES 15 上启用创新轨道,该轨道将安装 MySQL 9.0
$> 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
启用官方 MySQL 仓库后,安装 MySQL 服务器
$> sudo zypper install mysql-community-server
这将安装 MySQL 服务器的软件包,以及其他必需的软件包。
使用以下命令启动 MySQL 服务器
$> systemctl start mysql
您可以使用以下命令检查 MySQL 服务器的状态
$> systemctl status mysql
如果操作系统启用了 systemd,则应使用标准的 systemctl(或者,使用反向参数的 service)命令(例如 stop、start、status 和 restart)来管理 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!';
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
替换为软件包的名称(您可能需要先使用在 选择发行版系列中概述的选择特定发行版系列的子仓库的方法来启用该软件包的子仓库)
$> sudo zypper install package-name
例如,要从您已启用的发行版系列的子存储库中安装 MySQL 基准测试套件
$> sudo zypper install mysql-community-bench
在对 MySQL 进行任何更新之前,请仔细遵循 第 3 章,升级 MySQL 中的说明。在其中讨论的其他说明中,在更新之前备份您的数据库尤其重要。
通过以下步骤使用 MySQL SLES 存储库对您的 MySQL 安装进行就地更新(即替换旧版本的服务器,然后使用旧数据文件运行新版本)(假设您已使用 MySQL SLES 存储库安装了 MySQL;如果不是这种情况,请按照 替换由其他来源的 RPM 安装的 MySQL 中的说明操作)
-
选择目标系列
在更新操作期间,默认情况下,MySQL SLES 存储库会将 MySQL 更新到您在安装过程中选择的发布系列中的最新版本(有关详细信息,请参阅 选择发布系列),这意味着。例如,LTS 系列安装(例如 8.4)将不会更新到创新系列(例如 9.0)。要更新到另一个发布系列,您需要先禁用已选择(默认情况下或由您自己)的系列的子存储库,然后启用目标系列的子存储库。为此,请按照 选择发布系列 中给出的通用说明操作。
一般来说,要从一个发布系列升级到另一个发布系列,请转到下一个系列,而不是跳过一个系列。
重要MySQL SLES 存储库不支持对 MySQL 进行就地降级。请按照 第 4 章,降级 MySQL 中的说明操作。
-
升级 MySQL
通过以下命令升级 MySQL 及其组件
$> sudo zypper update mysql-community-server
或者,您可以通过告诉 Zypper 更新系统上的所有内容来更新 MySQL(这可能需要更多时间)
$> sudo zypper update
您也可以只更新特定组件。使用以下命令列出从 MySQL SLES 存储库安装的所有软件包
$> zypper packages -i | grep mysql-.*community
在识别出您选择的组件的软件包名称后,使用以下命令更新软件包,将 package-name
替换为软件包的名称
$> sudo zypper update package-name
用于安装 MySQL Community Server 及其组件的 RPM 可以从 MySQL 下载,可以从 MySQL Developer Zone、SLES 的本地软件存储库或 MySQL SLES 存储库下载。来自这些来源的 RPM 可能不同,它们可能会以不同的方式安装和配置 MySQL。
如果您使用来自 MySQL Developer Zone 或 SLES 的本地软件存储库的 RPM 安装了 MySQL,并且希望使用来自 MySQL SLES 存储库的 RPM 替换安装,请按照以下步骤操作
备份您的数据库,以避免数据丢失。有关如何操作,请参阅 第 9 章,备份和恢复。
停止您的 MySQL 服务器(如果它正在运行)。如果服务器作为服务运行,您可以使用以下命令停止它
$> systemctl stop mysql
按照 添加 MySQL SLES 存储库 中给出的步骤操作。
按照 选择发布系列 中给出的步骤操作。
按照 使用 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)
选择 “替换” 选项(在示例中为 “解决方案 1”)以完成您从 MySQL SLES 存储库的安装。
以下说明假定您的系统上尚未安装 MySQL Server 或 MySQL NDB Cluster;如果不是这种情况,请在继续之前删除 MySQL Server 或 MySQL NDB Cluster,包括其所有可执行文件、库、配置文件、日志文件和数据目录。但是,您无需删除可能用于在系统上启用 MySQL SLES 存储库的发布包。
NDB Cluster 自动安装程序包依赖于
python2-crypto
和python-paramiko
软件包。如果您的系统启用了 Python 存储库,Zypper 可以处理此依赖关系。
在 MySQL SLES 存储库中,MySQL Community Server 和 MySQL NDB Cluster 托管在不同的子存储库中。默认情况下,MySQL Server 的最新错误修复系列的子存储库已启用,而 MySQL NDB Cluster 的子存储库已禁用。要安装 NDB Cluster,请禁用 MySQL Server 的子存储库,并启用 NDB Cluster 的子存储库。例如,使用以下命令禁用默认情况下已启用的 MySQL 8.4 的子存储库
$> sudo zypper modifyrepo -d mysql-8.4-lts-community
然后,启用 MySQL NDB Cluster 的子存储库
$> 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 Cluster,请按照以下步骤操作
安装 SQL 节点的组件
$> sudo zypper install mysql-cluster-community-server
安装完成后,请按照 启动 MySQL 服务器 中给出的步骤启动和初始化 SQL 节点。
如果您选择使用
mysqld --initialize
命令手动初始化数据目录(有关详细信息,请参阅 第 2.9.1 节,“初始化数据目录”),将生成一个root
密码并存储在 SQL 节点的错误日志中;请参阅 启动 MySQL 服务器,了解如何查找密码,以及您需要了解的一些事项。
安装管理节点的可执行文件
$> sudo zypper install mysql-cluster-community-management-server
安装数据节点的可执行文件
$> sudo zypper install mysql-cluster-community-data-node
要安装更多 NDB Cluster 组件,请参阅 安装其他 MySQL 产品和组件。
请参阅 第 25.3.3 节,“NDB Cluster 的初始配置”,了解如何配置 MySQL NDB Cluster,以及 第 25.3.4 节,“NDB Cluster 的初始启动”,了解如何首次启动它。
您可以使用 Zypper 从 MySQL SLES 存储库安装 MySQL NDB Cluster 的单个组件和附加产品。为此,假设您的系统存储库列表中已包含 MySQL SLES 存储库(如果没有,请按照 使用 SLES 存储库安装 MySQL NDB Cluster 的步骤 1 和 2 操作),请按照 安装其他 MySQL NDB Cluster 产品和组件 中给出的相同步骤操作。
已知问题:当前,当您安装测试套件包(mysql-cluster-community-test
)时,并非所有运行 MySQL NDB Cluster 测试套件所需的组件都会自动安装。在运行测试套件之前,请使用 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