摘要
本指南简要介绍了如何使用 MySQL SLES 仓库在 SUSE Linux Enterprise Server (SLES) 上安装和升级 MySQL。
有关 SUSE 和 openSUSE 的支持版本和架构,请参阅官方的 MySQL 支持平台 列表。
注意: 从 MySQL 8.1.0 开始,不再支持 SLES 12。本指南包含有关多个 MySQL 版本的信息,因此 SLES 12 信息保留供 MySQL 版本 8.0 和 5.7 使用。
有关法律信息,请参阅 法律声明.
如需帮助使用 MySQL,请访问 MySQL 论坛,您可以在那里与其他 MySQL 用户讨论您的问题。
文档生成时间:2024-07-17 (版本:79056)
SLES 依赖项
为了解决 MySQL 的必需依赖项,请将 SLES SDK 仓库添加到您的仓库列表中,Zypper 将处理必需的依赖项。例如,MySQL 8 具有 pkgconfig(openssl) 依赖项。
MySQL 二进制发行版使用 GCC 7 构建,最低支持的 GCC 版本为 GCC 5.3(以前为 4.8.5)。
SLES 12:在 SLES 12 上安装 MySQL RPM 包要求启用 GCC Devel 仓库,例如
$> cd /etc/zypp/repos.d/
$> wget https://download.opensuse.org/repositories/devel:/gcc/SLE-12/devel:gcc.repo
MySQL 新安装步骤
以下说明假设您的系统上尚未安装任何版本的 MySQL(无论是 Oracle 分发的还是其他方分发的);如果情况并非如此,请改为按照 替换通过其他来源的 RPM 安装的 MySQL 中给出的说明进行操作。
-
添加 MySQL SLES 仓库
首先,将 MySQL SLES 仓库添加到系统仓库列表中。请按以下步骤操作
转到 MySQL SLES 仓库的下载页面:https://dev.mysqlserver.cn/downloads/repo/suse/.
选择并下载适用于您的 SLES 版本的发行版包。
虽然这对于每次更新来说不是必需的,但它确实会更新 MySQL 仓库信息以包含当前信息。例如,
mysql80-community-release-sl15-
是第一个 SUSE 15 仓库配置文件,它添加了从 MySQL 8.1 开始的创新发布轨迹。7
.noarch.rpm使用以下命令安装下载的发行版包,将
package-name
替换为下载的包的名称$> sudo rpm -Uvh package-name.rpm
以下是安装 SLES 12 和 15 包的命令,其中
#
表示版本中的发行版号,例如15-1
# SLES 12 # Enables MySQL 8.0 by default $> sudo rpm -Uvh mysql80-community-release-sles12-#.noarch.rpm # SLES 15 / openSUSE 15 # Enables MySQL 8.0 by default, which also adds the "innovation" (8.1+) track $> sudo rpm -Uvh mysql80-community-release-sl15-#.noarch.rpm
-
导入 MySQL GnuPG 密钥
使用以下命令将 MySQL 产品的 GnuPG 密钥导入系统,该密钥将用于检查从 MySQL SLES 仓库下载的包的签名
$> sudo rpm --import /etc/RPM-GPG-KEY-mysql-2022
-
选择发行版系列
在 MySQL SLES 仓库中,MySQL Community Server 的不同发行版系列托管在不同的子仓库中。对于 SLES 12 和 SLES 15,最新错误修复系列(目前为 MySQL 8.4)的子仓库默认情况下处于启用状态,所有其他系列的子仓库都处于禁用状态。使用此命令查看 MySQL SLES 仓库中的所有子仓库,以及查看哪些子仓库已启用或禁用
$> zypper repos | grep mysql.*community
从 MySQL 8.1 开始,创新轨迹适用于 SLES 15,例如 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
$> sudo zypper install mysql-community-server
这将安装 MySQL 服务器的包,以及其他必需的包。
-
启动 MySQL 服务器
使用以下命令启动 MySQL 服务器
$> systemctl start mysql
您可以使用以下命令检查 MySQL 服务器的状态
$> systemctl status mysql
如果操作系统启用了 systemd,则应使用标准的 systemctl(或备选地,使用反转参数的 service)命令(如 stop、start、status 和 restart)来管理 MySQL 服务器服务。默认情况下,
mysql
服务已启用,并且在系统重新启动时启动。请参阅 使用 systemd 管理 MySQL 服务器,以获取更多信息。MySQL 服务器初始化(适用于 MySQL 8.0 及更高版本): 当服务器首次启动时,服务器将被初始化,并将发生以下情况(如果服务器的数据目录在初始化过程开始时为空)
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 service mysql 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 SLES 仓库升级 MySQL
在执行任何 MySQL 更新之前,请仔细阅读 升级 MySQL 中的说明。在其中讨论的其他说明中,在更新之前备份数据库尤其重要。
使用 MySQL SLES 仓库执行 MySQL 安装的原地更新(即替换旧版本的服务器,然后使用旧数据文件运行新版本),请按照以下步骤操作(这些步骤假设您已使用 MySQL SLES 仓库安装了 MySQL;如果情况并非如此,请改为按照 替换通过其他来源的 RPM 安装的 MySQL 中的说明进行操作)
-
选择目标系列
在更新操作期间,默认情况下,MySQL SLES 仓库会将 MySQL 更新到安装过程中选择的系列(请参阅 选择发行版系列,以获取详细信息)中的最新版本,这意味着,例如,5.7.x 安装不会自动更新到 8.0.x 版本。若要更新到其他发行版系列,您需要先禁用已选定系列(默认情况下或由您自己选定)的子仓库,并启用目标系列的子仓库。为此,请按照 选择发行版系列 中给出的常规说明进行操作。
作为一般规则,要从一个发行版系列升级到另一个发行版系列,请升级到下一个系列,而不是跳过一个系列。
重要有关从 MySQL 5.6 升级到 5.7 的重要信息,请参阅 从 MySQL 5.6 升级到 5.7.
有关从 MySQL 5.7 升级到 8.0 的重要信息,请参阅 从 MySQL 5.7 升级到 8.0.
MySQL SLES 仓库不支持 MySQL 的原地降级。请按照 降级 MySQL 中的说明进行操作。
-
升级 MySQL
使用以下命令升级 MySQL 及其组件
$> sudo zypper update mysql-community-server
或者,您可以通过告诉 Zypper 更新系统中的所有内容来更新 MySQL(这可能需要更长的时间)
$> sudo zypper update
-
升级数据
MySQL 服务器在 Zypper 更新后始终会重新启动。在 MySQL 8.0.16 之前,请在服务器重新启动后运行 mysql_upgrade,以检查并可能解决旧数据和升级后的软件之间存在的任何不兼容性。 mysql_upgrade 还执行其他功能;请参阅 mysql_upgrade — 检查和升级 MySQL 表,以获取详细信息。从 MySQL 8.0.16 开始,此步骤不再需要,因为服务器会执行 mysql_upgrade 之前处理的所有任务。
注意从 MySQL 5.6 升级到 5.7 后,如果您无法以
root
用户身份连接到服务器(这将导致无法运行 mysql_upgrade),请停止服务器,然后使用--skip-grant-tables
选项重新启动服务器,然后再运行 mysql_upgrade。有关详细信息,请参见 MySQL 5.7 中的变化。
您也可以只更新特定的组件。使用以下命令列出 MySQL SLES 存储库中安装的所有软件包
$> zypper packages -i | grep mysql-.*community
确定您要更新的组件的软件包名称后,使用以下命令更新软件包,将 package-name
替换为软件包名称
$> sudo zypper update package-name
替换由其他来源的 RPM 安装的 MySQL
安装 MySQL Community Server 及其组件的 RPM 可以从 MySQL 下载,这些 RPM 可以从 MySQL 开发者专区、SLES 的原生软件存储库或 MySQL SLES 存储库下载。来自这些来源的 RPM 可能有所不同,并且它们可能以不同的方式安装和配置 MySQL。
如果您使用来自 MySQL 开发者专区或 SLES 的原生软件存储库的 RPM 安装了 MySQL,并且想要使用来自 MySQL SLES 存储库的 RPM 替换该安装,请按照以下步骤操作
备份您的数据库以避免数据丢失。有关如何执行此操作,请参见 备份和恢复。
如果您正在运行 MySQL 服务器,请停止它。如果服务器作为服务运行,您可以使用以下命令停止它
$> sudo service mysql stop
按照 添加 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 SLES 存储库的更高版本替换了您的 MySQL 安装,请按照 升级数据 中给出的说明操作。
使用 SLES 存储库安装 MySQL NDB 集群
以下说明假设您的系统上尚未安装 MySQL 服务器或 MySQL NDB 集群;如果不是这种情况,请在继续之前删除 MySQL 服务器或 MySQL NDB 集群,包括其所有可执行文件、库、配置文件、日志文件和数据目录。但是,您无需删除可能已用于在系统上启用 MySQL SLES 存储库的发行版软件包。
NDB 集群自动安装程序软件包依赖于
python2-crypto
和python-paramiko
软件包。如果您的系统上已启用 Python 存储库,则 Zypper 可以处理此依赖项。您可以使用以下命令执行此操作$> sudo zypper addrepo \ http://download.opensuse.org/repositories/devel:languages:python/SLE_12_SP2/devel:languages:python.repo
MySQL SLES 存储库仅支持在 7.5.6 及更高版本中安装 MySQL NDB 集群,并且仅支持 SLES 12。有关安装 NDB 集群的其他方法,请参见 在 Linux 上安装 NDB 集群。
-
为 MySQL NDB 集群添加 MySQL SLES 存储库并导入 GnuPG 密钥
按照 添加 MySQL SLES 存储库 和 导入 MySQL GnuPG 密钥 中的步骤将 MySQL SLES 存储库添加到您系统存储库列表并导入 GnuPG 密钥。如果您之前已执行过这些步骤,请确保通过运行以下命令获取发行版软件包的最新版本
$> sudo zypper update mysql57-community-release
-
选择 MySQL NDB 集群子存储库
在 MySQL SLES 存储库中,MySQL Community Server 和 MySQL NDB 集群托管在不同的子存储库中。默认情况下,MySQL 服务器最新 bug 修复系列的子存储库已启用,而 MySQL NDB 集群的子存储库已禁用。要安装 NDB 集群,请禁用 MySQL 服务器的子存储库并启用 NDB 集群的子存储库。例如,使用以下命令禁用默认启用的 MySQL 8.4 的子存储库
$> sudo zypper modifyrepo -d mysql84-community
然后,启用 MySQL 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
安装完成后,按照 启动和停止 MySQL 服务器 中给出的步骤启动并初始化 SQL 节点。
如果您选择使用
mysqld --initialize
命令手动初始化数据目录(有关详细信息,请参见 初始化数据目录),则将生成一个root
密码并将其存储在 SQL 节点的错误日志中;有关如何查找密码以及您需要了解的几个事项,请参见 MySQL 服务器初始化。
安装管理节点的可执行文件
$> sudo zypper install mysql-cluster-community-management-server
安装数据节点的可执行文件
$> sudo zypper install mysql-cluster-community-data-node
要安装更多 NDB 集群组件,请参见 安装其他 MySQL 产品和组件。
-
配置和启动 MySQL NDB 集群
有关如何配置 MySQL NDB 集群,请参见 NDB 集群的初始配置;有关如何首次启动它,请参见 NDB 集群的初始启动。
安装其他 MySQL NDB 集群产品和组件
您可以使用 Zypper 从 MySQL SLES 存储库安装 MySQL NDB 集群的单个组件和附加产品。为此,假设您的系统存储库列表中已有 MySQL SLES 存储库(如果没有,请按照 使用 SLES 存储库安装 MySQL NDB 集群 的步骤 1 和 2 操作),然后按照 安装其他 MySQL 产品和组件 中给出的相同步骤操作。
已知问题:当前,当您安装测试套件软件包(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
版权所有 © 1997, 2024,Oracle 及其附属公司。
许可限制
本软件和相关文档根据包含使用和披露限制的许可协议提供,并受知识产权法的保护。除您的许可协议明确允许或法律允许外,您不得以任何形式、以任何方式使用、复制、复制、翻译、广播、修改、许可、传输、分发、展示、执行、出版或显示任何部分。除非法律要求互操作性,否则禁止对本软件进行反向工程、反汇编或反编译。
免责声明
此处包含的信息如有更改,恕不另行通知,不保证没有错误。如果您发现任何错误,请以书面形式告知我们。
限制权利声明
如果这是交付给美国政府或以美国政府的名义获得许可的任何人的软件、软件文档、数据(如联邦采购条例中定义)或相关文档,则以下声明适用
美国政府最终用户:Oracle 程序(包括任何操作系统、集成软件、交付硬件上嵌入、安装或激活的任何程序,以及这些程序的修改)以及交付给美国政府最终用户或其访问的 Oracle 计算机文档或其他 Oracle 数据,根据适用的联邦采购条例和机构特定的补充条例,属于“商业计算机软件”、“商业计算机软件文档”或“有限权利数据”。因此,使用、复制、复制、发布、显示、披露、修改、准备衍生作品和/或改编 i) Oracle 程序(包括任何操作系统、集成软件、交付硬件上嵌入、安装或激活的任何程序,以及这些程序的修改),ii) Oracle 计算机文档和/或 iii) 其他 Oracle 数据,须遵守适用于相关合同的许可证中规定的权利和限制。适用于美国政府使用 Oracle 云服务的条款由该服务的适用合同定义。美国政府没有获得其他权利。
危险应用声明
本软件或硬件是为在各种信息管理应用中通用使用而开发的。它不是为在任何固有危险的应用中使用而开发或设计,包括可能造成人身伤害的应用。如果您在危险应用中使用本软件或硬件,则您有责任采取所有适当的安全措施、备份措施、冗余措施和其他措施以确保其安全使用。甲骨文公司及其附属公司不承担因在危险应用中使用本软件或硬件而造成的任何损害的责任。
商标声明
Oracle、Java、MySQL 和 NetSuite 是 Oracle 及其附属公司的注册商标。其他名称可能是其各自所有者的商标。
英特尔和英特尔凌动是英特尔公司或其附属公司的商标或注册商标。所有 SPARC 商标均在许可下使用,并且是 SPARC International, Inc. 的商标或注册商标。AMD、Epyc 和 AMD 徽标是 Advanced Micro Devices 的商标或注册商标。UNIX 是 The Open Group 的注册商标。
第三方内容、产品和服务免责声明
本软件或硬件和文档可能提供对第三方内容、产品和服务的访问或有关其的信息。Oracle 公司及其附属公司不承担任何责任,明确声明对第三方内容、产品和服务不承担任何形式的担保,除非您与 Oracle 之间的适用协议中另有规定。除您与 Oracle 之间的适用协议中另有规定外,Oracle 公司及其附属公司对因您访问或使用第三方内容、产品或服务而造成的任何损失、成本或损害不承担任何责任。
本文档的使用
本文档并非根据 GPL 许可证分发。本文档的使用须遵守以下条款
您仅可为个人使用创建本文档的打印副本。只要实际内容未以任何方式更改或编辑,即可转换为其他格式。您不得以任何形式或在任何媒体上发布或分发本文档,除非您以类似于 Oracle 传播它的方式分发文档(即,在网站上以电子方式下载软件)或在 CD-ROM 或类似媒体上,但前提是文档必须与软件一起在同一媒体上分发。任何其他使用,例如任何印刷副本的分发或本文档(全部或部分)在其他出版物中的使用,都需要事先获得 Oracle 授权代表的书面同意。Oracle 及其附属公司保留对上述未明确授予的本文档的所有权利。
有关 Oracle 对可访问性的承诺的信息,请访问 Oracle 可访问性计划网站:http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc。
购买了支持的 Oracle 客户可以通过 My Oracle Support 访问电子支持。有关信息,请访问 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info,或者如果您是听力障碍人士,请访问 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs
。