3.3.1 在 Unix 平台上安装 MySQL Cluster Manager

按照以下说明在 Linux 和类似平台上安装 MySQL Cluster Manager 代理。

从分发存档中提取 MySQL Cluster Manager 8.0.31 程序和其他文件。  您必须在打算用作 MySQL NDB Cluster 主机的每台计算机上安装 MySQL Cluster Manager 的副本。换句话说,您需要在作为 MySQL Cluster Manager 管理站点成员的每个主机上安装 MySQL Cluster Manager。对于每台主机,您应该使用与该计算机的操作系统和处理器架构相匹配的 MySQL Cluster Manager 构建。

在 Linux 系统上,您可以使用以下命令解压存档, mcm-8.0.31-cluster-8.0.31-linux-sles12-x86-64bit.tar.gz 作为示例使用(实际文件名将根据您打算部署的 MySQL Cluster Manager 构建而有所不同):

$> tar -zxvf mcm-8.0.31-cluster-8.0.31-linux-sles12-x86-64bit.tar.gz

此命令将存档解压缩到与存档同名的目录中,减去.tar.gz 扩展名。解压目录下的顶级目录为clustermcm-8.0.31.

重要的

由于 Solaris 版本的 tar无法正确处理长文件名,如果您尝试使用它来解压 MySQL Cluster Manager 存档,则 MySQL Cluster Manager 程序文件可能已损坏。要在 Solaris 操作系统上解决此问题,您应该使用 GNU tar ( gtar ) 而不是Solaris 提供的默认tar 。在 Solaris 上,gtar通常已经安装在 /usr/sfw/bin目录中,尽管 gtar可执行文件可能不包含在您的路径中。如果 gtar在您的系统上不存在,请查阅 Oracle Solaris 文档以获取有关如何获取和安装它的信息。

一般情况下,您放置解压后的MySQL Cluster Manager目录的位置和该目录的名称可以是任意的。但是,我们建议您为可选软件使用一个标准位置,例如/opt在 Linux 系统上,并使用 8.0.31 版本号命名目录(这样便于后续升级)。在典型的 Linux 系统上,您可以像这样完成此任务:

$> cd mcm-8.0.31-cluster-8.0.31-linux-sles12-x86-64bit
$> mv mcm-8.0.31 /opt/mcm-8.0.31

为了便于使用,我们建议您将 MySQL Cluster Manager 文件放在要运行它的每个主机上的同一目录中。

MySQL Cluster Manager Unix Distribution Archive 的内容。  如果您更改到放置提取的 MySQL Cluster Manager 存档的目录并列出内容,您应该会看到类似于此处显示的内容:

$> cd /opt/mcm-8.0.31
$> ls
bin  docs  etc  lib  licenses  share  var

下表描述了这些目录:

表 3.1 MySQL Cluster Manager Unix 分发存档的内容,按目录

目录 内容
bin MySQL Cluster Manager 代理和客户端可执行文件
docs 包含示例配置文件、 sample_mcmd.confLICENSE文件和 README.txt文件
etc/init.d 包含init脚本
lib和子目录 运行 MySQL Cluster Manager 代理所需的库
licenses/glib-ver GLib包含库的源代码(包括许可和文档)的存档
var 包含 MySQL 集群管理器所需的有关进程、属性和命令语法的信息的 XML 文件

通常,在上表中显示的那些目录中,您需要关注的唯一目录是 bindocsetc目录。

对于包含 MySQL NDB Cluster 的 MySQL Cluster Manager 8.0.31 发行版,目录中包含完整的 MySQL NDB Cluster 8.0.31 二进制发行版cluster。在此目录中,MySQL NDB Cluster 发行版的布局与独立 MySQL NDB Cluster 二进制发行版的布局相同。例如, 可以在 . _ _ _ _ _ 有关更多信息,请参阅 MySQL Installation Layout for Generic Unix/Linux Binary PackageInstalling an NDB Cluster Binary Release on Linuxcluster/bin,在 MySQL 手册中。

如果您希望使用附带的 MySQL NDB Cluster 软件,建议您将该cluster 目录及其所有内容移动到 MySQL Cluster Manager 安装目录之外的位置,例如 . 例如,在 Linux 系统上,您可以将与 MySQL Cluster Manager 8.0.31 捆绑在一起的 MySQL NDB Cluster NDB 8.0.31 软件移动到合适的位置,方法是首先导航到从分发存档中解压的目录,然后使用 shell命令类似于此处显示的内容: /opt/ndb-version

$> mv cluster /opt/ndb-8.0.31
笔记

mcmd选项使用与MySQL Cluster Manager 安装目录位于同一目录下的文件夹中的 MySQL NDB Cluster 二进制文件,如果在那里找不到二进制文件,则引导失败。 要解决此问题,请在安装目录上方的目录中创建指向正确目录的符号链接,如下所示: --bootstrapcluster

$> ln -s /opt/ndb-8.0.31 cluster

执行此操作后,您可以使用mcm客户端命令add package并将upgrade cluster任何所需的一个或多个集群升级到新的 MySQL NDB Cluster 软件版本。

重要的

在 Linux 平台上,请勿尝试通过 RPM、Debian 或其他任何包管理系统的安装包来安装 MySQL NDB Cluster 软件。他们安装 MySQL NDB Cluster 的方式与 MySQL Cluster Manager 存档附带的二进制分发版不同,这将在您尝试使用 MySQL Cluster Manager 升级集群时导致未来出现问题。

默认情况下,MySQL Cluster Manager 代理将其日志文件写入 mcmd.log安装目录所在的同一目录中。当代理第一次运行时,它会创建一个目录,代理存储自己的配置数据;默认情况下,它 mcm_data位于 MySQL Cluster Manager 安装目录的父目录中。在 MySQL Cluster Manager 控制下的给定 MySQL NDB Cluster 的配置数据、日志文件和数据节点文件系统cluster_name,可以 在这个数据目录(有时也称为 MySQL Cluster Manager 数据存储库)下找到。 clusters/cluster_name

可以使用 mcmd启动选项或通过更改代理配置文件来控制 MySQL Cluster Manager 代理配置文件、日志文件和数据目录的位置。为了简化 MySQL Cluster Manager 的升级,我们建议您将数据存储库更改为 MySQL Cluster Manager 安装目录之外的目录,例如 /var/opt/mcm. 有关详细信息,请参阅 第 3.4 节,“MySQL Cluster Manager 配置文件”第 4.2 节,“启动和停止 MySQL Cluster Manager 代理”

MySQL 集群管理器初始化脚本。  在 Linux 和其他类 Unix 系统上,您可以使用 MySQL Cluster Manager 分发版提供的 init 脚本将 MySQL Cluster Manager 代理设置为作为守护进程运行。

笔记

MySQL Cluster Manager 8.0 使用新的初始化脚本;不要将 MySQL Cluster Manager 1.4 的初始化脚本与 MySQL Cluster Manager 8.0 一起使用。

为此,请按照此处列出的步骤操作:

  1. /etc/init.d/mcmd将MySQL Cluster Manager 安装目录下 的文件复制到系统/etc/init.d/目录(或等效目录)。在典型的 Linux 系统上,您可以在系统 shell 中使用以下命令执行此操作,其中 mcmdir是 MySQL Cluster Manager 安装目录:

    $> cd mcmdir/etc/init.d
    $> cp mcmd /etc/init.d/mcmd
  2. 确保此文件具有适当的权限并且可由运行 MySQL Cluster Manager 的用户帐户执行。在典型的 Linux 系统上,这可以通过在系统 shell 中执行类似于此处所示的命令来完成:

    $> chown mcmuser /etc/init.d/mcmd
    $> chmod 755 /etc/init.d/mcmd

    请务必参考您的操作系统文档以获取有关执行这些操作所需的命令的确切信息,因为它们可能因平台而异。

  3. /etc/init.d/mcmd在文本编辑器中 打开文件。在这里,我们展示了该文件的一部分,其中我们突出显示了需要更新的两行:

      MCMD_SERVICE="mcmd"
      MCMD_PSERVICE="MySQL Cluster Manager"
      MCMD_ROOTDIR=@@MCMD_ROOTDIR@@
      MCMD_BIN="$MCMD_ROOTDIR/bin/mcmd"
      MCMD_CONFIG="$MCMD_ROOTDIR/etc/mcmd.conf"
    
      # Run service as non-root user
      MCMD_USER=@@MCMD_USER@@
      SU="su --login $MCMD_USER --command"

    在突出显示的第一行中,将占位符替换@@MCMD_ROOTDIR@@为 MySQL Cluster Manager 安装目录的完整路径。在这些行的第二行中,将占位符替换为 @@MCMD_USER@@运行 MySQL Cluster Manager 代理的系统用户的名称(注意,这 不能是系统 root帐户)。保存编辑后的文件。

每当系统重新启动时,MySQL Cluster Manager 代理现在应该会自动启动。

当代理配置为守护进程时,只要代理关闭时集群正在运行,集群进程就会在代理重新启动时自动启动;但是, StopOnError 必须为所有数据节点禁用(设置为 0)才能使其正常工作。如果集群在代理关闭时停止,则有必要提供一个脚本来等待代理完成其启动和恢复阶段,然后,当代理准备就绪时,使用诸如 之类的命令启动集群。 mcmdir/bin/mcm -e 'start cluster --background cluster_name;'