MySQL SLES 仓库提供了用于安装和管理 MySQL 服务器、客户端和其他组件的 RPM 软件包在 SUSE Enterprise Linux Server 上。
添加或更新官方 MySQL SLES 仓库到系统的仓库列表中:
仓库文件名中的 "mysql80
" 表示 MySQL 8.0 系列默认启用,但也包括可选的 "创新" 轨道,从 MySQL 8.1 开始。
新 MySQL 仓库安装
如果 MySQL 仓库尚未出现在系统上,则:
-
转到 MySQL SLES 仓库的下载页面:https://dev.mysql.com/downloads/repo/suse/。
-
选择并下载适合您 SLES 版本的发行包。
-
使用以下命令安装下载的发行包,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-
是 SUSE 15 的第一个仓库配置文件,它添加了从 MySQL 8.1 系列开始的创新版本轨道。7
.noarch.rpm
在 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
启用官方 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)命令,如 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
尽快更改根密码,通过使用生成的临时密码登录并设置超级用户账户的自定义密码:
$> 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 SLES 存储库安装了 MySQL;如果不是这种情况,请按照 替换其他来源的 RPM 安装的 MySQL 中的说明操作):
-
选择目标系列
在更新操作期间,默认情况下,MySQL SLES 存储库将 MySQL 更新到您选择的发行系列的最新版本(请参阅 选择发行系列 了解详细信息),这意味着。例如,bugfix 系列安装,例如 8.0,不会更新到创新系列,例如 8.3。要更新到另一个发行系列,您需要首先禁用当前选择的子存储库,然后启用目标系列的子存储库。按照 选择发行系列 中的通用说明操作。
通常情况下,要从一个版本系列升级到另一个版本系列,需要升级到下一个系列,而不是跳过一个系列。
Important-
有关从 MySQL 5.7 升级到 8.0 的重要信息,请参阅 从 MySQL 5.7 升级到 8.0。
-
有关从 MySQL 8.0 升级到创新系列的重要信息,请参阅 从 MySQL 8.0 升级到 8.3。
-
MySQL SLES 存储库不支持 MySQL 的就地降级。按照 第 4 章 降级 MySQL 中的说明进行操作。
-
-
升级 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
可以从 MySQL 开发者区域、SLES 的本机软件存储库或 MySQL SLES 存储库下载 MySQL 社区服务器和其组件的 RPM。这些来源的 RPM 可能不同,并且可能以不同的方式安装和配置 MySQL。
如果您已经使用来自 MySQL 开发者区域或 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)
选择 “replacement” 选项(例如,解决方案 1)以完成从 MySQL SLES 存储库的安装。
-
以下说明假设您系统上既没有安装 MySQL 服务器也没有安装 MySQL NDB 集群;如果不是这种情况,请在继续之前删除 MySQL 服务器或 MySQL NDB 集群,包括所有可执行文件、库、配置文件、日志文件和数据目录。但是,您不需要删除用于启用 MySQL SLES 存储库的发行包。
-
NDB 集群自动安装程序包依赖于
python2-crypto
和python-paramiko
包。Zypper 可以处理这个依赖项,如果 Python 存储库已经在您的系统上启用。
在 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 集群的最小安装,请按照以下步骤操作:
-
安装 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 集群的第一次启动” 以了解如何第一次启动它。
您可以使用 Zypper 从 MySQL SLES 仓库安装单个组件和其他 MySQL NDB 集群产品。为此,假设您已经在系统的仓库列表中添加了 MySQL SLES 仓库(如果没有,请按照 使用 SLES 仓库安装 MySQL NDB 集群 的步骤 1 和 2 操作),然后按照 安装其他 MySQL NDB 集群产品和组件 中的步骤操作。
已知问题: 目前,不是所有用于运行 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