2.3.1 在 Unix 平台上安装 MySQL Cluster Manager

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

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

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

$> tar -zxvf mcm-1.3.6-cluster-7.4.6-linux-sles11-x86-64bit.tar.gz

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

重要的

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

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

$> cd mcm-1.3.6-cluster-7.4.6-linux-sles11-x86-64bit
$> mv mcm-1.3.6 /opt/mcm-1.3.6

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

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

$> cd /opt/mcm-1.3.6
$> ls
bin  cluster  etc  lib  libexec  licenses  share  var

下表描述了这些目录:

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

目录 内容
bin MySQL Cluster Manager 代理启动脚本
cluster 包含 MySQL Cluster NDB 7.4.6 二进制分发版
etc 包含代理配置文件 ( mcmd.ini)
etc/init.d 初始化脚本
lib和子目录 运行 MySQL Cluster Manager 代理所需的库
libexec MySQL Cluster Manager 代理和客户端可执行文件
licenses/lgpl 包含源代码(包括许可和文档)的存档,适用于glib2.1
share/doc/mcmd README.txt文件
var 包含 MySQL 集群管理器所需的有关进程、属性和命令语法的信息的 XML 文件

通常,上表中您需要关注的目录只有 binetc 目录。

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

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

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

mcmd 选项使用安装目录目录中包含的 MySQL Cluster 二进制文件,如果 在那里找不到它们,则无法使用。要解决此问题,请在其位置创建指向正确目录的符号链接,如下所示: --bootstrapcluster

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

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

重要的

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

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

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

在 Linux 和其他类 Unix 系统上,您可以使用 MySQL Cluster Manager 分发版提供的 init 脚本将 MySQL Cluster Manager 代理设置为作为守护进程运行。为此,请按照此处列出的步骤操作:

  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.ini"
    
      # 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;'