在Linux上安装NDB群集
本节介绍Linux和其他类似Unix的操作系统上NDB Cluster的安装方法。尽管接下来的几节将介绍Linux操作系统,但是此处给出的说明和过程应该很容易适应于其他受支持的类似Unix的平台。有关特定于Windows系统的手动安装和设置说明,请参见“在Windows上安装NDB群集”。
每个NDB群集主机必须安装正确的可执行程序。运行SQL节点的主机必须在其上安装MySQL服务器二进制文件(mysqld)。管理节点需要管理服务器守护程序(ndb_mgmd);数据节点需要数据节点守护程序(ndbd或ndbmtd)。无需在管理节点主机和数据节点主机上安装MySQL Server二进制文件。建议您还在管理服务器主机上安装管理客户端(ndb_mgm)。
可以使用Oracle的预编译二进制文件(下载为.tar.gz归档文件),RPM软件包(也可以从Oracle获取)或源代码来在Linux上安装NDB Cluster。所有这三种安装方法将在以下部分中介绍。
无论使用哪种方法,在安装NDB群集二进制文件之后,仍然有必要在启动群集之前为所有群集节点创建配置文件。请参见“ NDB群集的初始配置”。
在Linux上安装NDB群集二进制版本
本节介绍了从Oracle提供的预编译二进制文件为每种类型的Cluster节点安装正确的可执行文件所需的步骤。
为了使用预编译的二进制文件设置群集,每个群集主机的安装过程的第一步是从NDB群集下载页面下载二进制存档。(对于最新的64位NDB 8.0版本,为mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64.tar.gz
。)我们假定您已将此文件放置在每台计算机的/var/tmp
目录中。
如果需要自定义二进制文件,请参见“使用开发源树安装MySQL”。
注意完成安装后,请不要启动任何二进制文件。我们将向您展示如何按照节点的配置进行操作(请参见“ NDB群集的初始配置”)。
SQL节点。在指定用于承载SQL节点的每台计算机上,以系统root
用户身份执行以下步骤:
检查您的
/etc/passwd
和/etc/group
文件(或使用操作系统提供的用于管理用户和组的任何工具),以参见系统上是否已存在mysql
组和mysql
用户。一些操作系统发行版会在操作系统安装过程中创建这些发行版。如果尚不存在,请创建一个新的mysql
用户组,然后将mysql
用户添加到该组:shell>
groupadd mysql shell>useradd -g mysql -s /bin/false mysql在不同版本的Unix上,useradd和groupadd的语法可能略有不同,或者它们的名称也可能不同,例如adduser和addgroup。
将位置更改为包含下载文件的目录,解压缩归档文件,并创建一个名为
mysql
该mysql
目录的符号链接。注意
实际的文件和目录名称根据NDB群集版本号而异。
shell>
cd /var/tmp shell>tar -C /usr/local -xzvf mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64.tar.gz shell>ln -s /usr/local/mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql将位置更改为
mysql
目录,并使用mysqld设置系统数据库--initialize
,如下所示:shell>
cd mysql shell>mysqld --initialize这将为MySQL
root
帐户生成一个随机密码。如果您不希望生成随机密码,则可以用--initialize-insecure
选项代替--initialize
。无论哪种情况,在执行此步骤之前,都应参见“初始化数据目录”以获取更多信息。另请参见“mysql_secure_installation-提高MySQL安装安全性”。为MySQL服务器和数据目录设置必要的权限:
shell>
chown -R root . shell>chown -R mysql data shell>chgrp -R mysql .将MySQL启动脚本复制到适当的目录,使其可执行,并将其设置为在操作系统启动时启动:
shell>
cp support-files/mysql.server /etc/rc.d/init.d/ shell>chmod +x /etc/rc.d/init.d/mysql.server shell>chkconfig --add mysql.server(启动脚本目录可能会因您的操作系统和版本而异,例如,在某些Linux发行版中为
/etc/init.d
。)在这里,我们使用Red Hat的chkconfig创建指向启动脚本的链接。在您的平台上使用适合此目的的任何方式,例如 Debian上的update-rc.d。
请记住,必须在要驻留SQL节点的每台计算机上重复上述步骤。
数据节点。数据节点的安装不需要mysqld二进制文件。仅需要NDB群集数据节点可执行文件ndbd(单线程)或ndbmtd(多线程)。这些二进制文件也可以在.tar.gz
存档中找到。同样,我们假设您已将此归档文件放在中/var/tmp
。
作为系统root
(即,在使用sudo,su root或您的系统等效物临时承担系统管理员帐户的特权之后),执行以下步骤以在数据节点主机上安装数据节点二进制文件:
将位置更改为
/var/tmp
目录,然后将ndbd和ndbmtd二进制文件从存档中提取到合适的目录中,例如/usr/local/bin
:shell>
cd /var/tmp shell>tar -zxvf mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64.tar.gz shell>cd mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64 shell>cp bin/ndbd /usr/local/bin/ndbd shell>cp bin/ndbmtd /usr/local/bin/ndbmtd(
/var/tmp
一旦将ndb_mgm和ndb_mgmd复制到可执行文件目录中,就可以安全地删除通过解压缩下载的归档文件而创建的目录及其包含的文件。)将位置更改为将文件复制到的目录,然后使它们都可执行:
shell>
cd /usr/local/bin shell>chmod +x ndb*
在每个数据节点主机上应重复上述步骤。
尽管只需要一个数据节点可执行文件即可运行NDB Cluster数据节点,但在前面的说明中,我们已经说明了如何安装ndbd和ndbmtd。我们建议您在安装或升级NDB群集时执行此操作,即使您打算仅使用它们中的一个,也可以这样做,因为这样可以节省时间和麻烦,以防您以后决定从一个更改为另一个。
注意托管数据节点的每台计算机上的数据目录为
/usr/local/mysql/data
。在配置管理节点时,此信息必不可少。(请参见“ NDB群集的初始配置”。)
管理节点。管理节点的安装不需要mysqld二进制文件。仅需要NDB群集管理服务器(ndb_mgmd);您很可能也希望安装管理客户端(ndb_mgm)。这两个二进制文件也都可以在.tar.gz
存档中找到。同样,我们假设您已将此归档文件放在中/var/tmp
。
作为system root
,执行以下步骤在管理节点主机上安装ndb_mgmd和ndb_mgm:
将位置更改为
/var/tmp
目录,然后将ndb_mgm和ndb_mgmd从存档中提取到合适的目录中,例如/usr/local/bin
:shell>
cd /var/tmp shell>tar -zxvf mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64.tar.gz shell>cd mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64 shell>cp bin/ndb_mgm* /usr/local/bin(
/var/tmp
一旦将ndb_mgm和ndb_mgmd复制到可执行文件目录中,就可以安全地删除通过解压缩下载的归档文件而创建的目录及其包含的文件。)将位置更改为将文件复制到的目录,然后使它们都可执行:
shell>
cd /usr/local/bin shell>chmod +x ndb_mgm*
在“ NDB群集的初始配置”中,我们为示例NDB群集中的所有节点创建配置文件。
从RPM安装NDB群集
本节介绍了使用Oracle提供的RPM软件包为每种类型的NDB Cluster 8.0节点安装正确的可执行文件的必要步骤。有关NDB Cluster 早期版本的RPM的信息,请参阅使用旧式RPM(NDB 7.5.3和更早版本)进行安装。
作为本节中描述的方法的替代,Oracle提供了NDB Cluster的MySQL存储库,该存储库与许多常见的Linux发行版兼容。此处列出了两个可用于基于RPM的分发的重新发布记录:
- 对于使用yum或dnf的发行版,可以将MySQL Yum存储库用于NDB群集。有关说明和其他信息,请参见使用Yum存储库安装MySQL NDB群集。
- 对于SLES,可以将MySQL SLES存储库用于NDB群集。有关说明和其他信息,请参见使用SLES存储库安装MySQL NDB群集。
RPM可用于32位和64位Linux平台。这些RPM的文件名使用以下模式:
mysql-cluster-community-data-node-8.0.20-1.el7.x86_64.rpm mysql-cluster-license-component-ver-rev.distro.arch.rpm license:= {commercial | community} component: {management-server | data-node | server | client | other—see text} ver: major.minor.release rev: major[.minor] distro: {el6 | el7 | sles12} arch: {i686 | x86_64}
license
指示RPM是NDB Cluster的商业版本还是社区版本的一部分。在本节的其余部分中,我们以示例为例,说明您正在安装社区版本。
component
下表中提供了的可能值以及相关说明:
NDB群集RPM分发的组件
零件 | 描述 |
---|---|
auto-installer | NDB群集自动安装程序;见第22.2.1,“NDB簇自动安装程序”,对使用 |
client | MySQL和NDB 客户端程序;包括mysql客户端,ndb_mgm客户端和其他客户端工具 |
common | MySQL服务器所需的字符集和错误消息信息 |
data-node | ndbd和 ndbmtd数据节点二进制文件 |
devel | MySQL客户端开发所需的头文件和库文件 |
embedded | 嵌入式MySQL服务器 |
embedded-compat | 向后兼容的嵌入式MySQL服务器 |
embedded-devel | 用于开发嵌入式MySQL应用程序的头文件和库文件 |
java | 支持ClusterJ应用程序所需的JAR文件 |
libs | MySQL客户端库 |
libs-compat | 向后兼容的MySQL客户端库 |
management-server | NDB群集管理服务器(ndb_mgmd) |
memcached | 支持所需的文件ndbmemcache |
minimal-debuginfo | 软件包服务器最小调试信息;在开发使用此程序包的应用程序或调试此程序包时非常有用 |
ndbclient | NDB 运行NDB API和MGM API应用程序的客户端库(libndbclient ) |
ndbclient-devel | 开发NDB API和MGM API应用程序所需的标头和其他文件 |
nodejs | 设置对NDB群集的Node.JS支持所需的文件 |
server | 包括具有存储引擎支持的MySQL服务器(mysqld)NDB ,以及相关的MySQL服务器程序 |
server-minimal | 最小安装用于NDB的MySQL服务器和相关工具 |
test | mysqltest,其他MySQL测试程序和支持文件 |
.tar
还可以使用给定平台和体系结构的所有NDB群集RPM 的单个捆绑包(文件)。该文件的名称遵循此处显示的模式:
mysql-cluster-license-ver-rev.distro.arch.rpm-bundle.tar
您可以使用tar或首选的用于提取档案的工具从该文件中提取单个RPM文件。
下表列出了安装三种主要类型的NDB群集节点所需的组件:
- 管理节点:
management-server
- 数据节点:
data-node
- SQL节点:
server
和common
此外,client
应安装RPM以在至少一个管理节点上提供ndb_mgm管理客户端。您可能还希望将其安装在SQL节点上,以使mysql和其他MySQL客户端程序在这些节点上可用。本节稍后将讨论按类型安装节点。
ver
表示NDB
8.0中由三部分组成的存储引擎版本号。x
格式,如8.0.20
示例所示。rev
在中提供RPM版本号major
。minor
格式。在本节所示的示例中,我们使用1.1
此值。
的distro
(Linux发行)是一个rhel5
(甲骨文Linux 5时,红帽企业Linux 4和5),el6
(甲骨文Linux 6中,红帽企业Linux 6),el7
(甲骨文的Linux 7,红帽企业Linux 7),或sles12
(SUSE企业Linux 12)。对于本节中的示例,我们假定主机运行Oracle Linux 7,Red Hat Enterprise Linux 7或等效的(el7
)。
arch
适用i686
于32位RPM和x86_64
64位版本。在此处显示的示例中,我们假设使用64位平台。
RPM文件名(此处显示为8.0.20
)中的NDB群集版本号可能会根据您实际使用的版本而有所不同。所有要安装的群集RPM具有相同的版本号非常重要。该体系结构还应该适合要安装RPM的机器;特别要注意的是,64位RPM(x86_64
)不能用于32位操作系统(i686
用于后者)。
数据节点。在承载NDB群集数据节点的计算机上,仅需要安装data-node
RPM。为此,请将此RPM复制到数据节点主机,并以系统root用户身份运行以下命令,并根据需要替换为RPM显示的名称,以匹配从MySQL网站下载的RPM的名称:
shell>rpm -Uhv mysql-cluster-community-data-node-8.0.20-1.el7.x86_64.rpm
这会将ndbd和ndbmtd数据节点二进制文件安装在中/usr/sbin
。这些中的任何一个都可用于在此主机上运行数据节点进程。
SQL节点。将server
和common
RPM 复制到用于托管NDB群集SQL节点的每台计算机(server
require common
)。server
通过以系统超级用户身份执行以下命令来安装 RPM,并根据需要替换为RPM显示的名称,以匹配从MySQL网站下载的RPM的名称:
shell>rpm -Uhv mysql-cluster-community-server-8.0.20-1.el7.x86_64.rpm
这将在目录中安装具有存储引擎支持的MySQL服务器二进制文件(mysqld)。它还会安装所有需要的MySQL Server支持文件和有用的MySQL服务器程序,包括mysql.server和mysqld_safe启动脚本(分别在和中)。RPM安装程序应自动处理常规配置问题(例如,如果需要,请创建用户和组)。NDB
/usr/sbin
/usr/share/mysql
/usr/bin
mysql
重要您必须使用为NDB Cluster发布的这些RPM的版本。为标准MySQL服务器发布的版本不提供对
NDB
存储引擎的支持。
要管理SQL节点(MySQL服务器),还应该安装client
RPM,如下所示:
shell>rpm -Uhv mysql-cluster-community-client-8.0.20-1.el7.x86_64.rpm
这会将mysql客户端和其他MySQL客户端程序(例如mysqladmin和mysqldump)安装到/usr/bin
。
管理节点。要安装NDB群集管理服务器,仅需要使用management-server
RPM。将此RPM复制到用于承载管理节点的计算机,然后通过以系统root用户身份运行以下命令进行安装(必要时替换为RPM显示的名称,以匹配management-server
从MySQL网站下载的RPM的名称):
shell>rpm -Uhv mysql-cluster-commercial-management-server-8.0.20-1.el7.x86_64.rpm
该RPM 在目录中安装管理服务器二进制文件ndb_mgmd/usr/sbin
。尽管这是运行管理节点实际所需的唯一程序,但最好同时提供ndb_mgm NDB群集管理客户端。您可以通过安装 RPM 来获得此程序以及其他NDB
客户端程序,例如ndb_desc和ndb_configclient
。
有关使用Oracle提供的RPM安装MySQL的一般信息,请参见“使用Oracle的RPM软件包在Linux上安装MySQL”。
从RPM安装后,您仍然需要配置集群。有关相关信息,请参见“ NDB群集的初始配置”。
所有要安装的群集RPM具有相同的版本号非常重要。该architecture
名称还应该适合要安装RPM的机器;特别要注意的是,64位RPM不能与32位操作系统一起使用。
数据节点。在要承载群集数据节点的计算机上,仅需要安装server
RPM。为此,请将此RPM复制到数据节点主机,并以系统root用户身份运行以下命令,并根据需要替换为RPM显示的名称,以匹配从MySQL网站下载的RPM的名称:
shell>rpm -Uhv MySQL-Cluster-server-gpl-8.0.20-1.sles11.i386.rpm
尽管这将安装所有NDB Cluster二进制文件,但实际上仅需要程序ndbd或ndbmtd(都在中/usr/sbin
)来运行NDB Cluster数据节点。
SQL节点。在每台用于承载群集SQL节点的计算机上,server
通过以系统root用户身份执行以下命令来安装RPM,并根据需要替换为RPM显示的名称,以匹配从MySQL网站下载的RPM的名称:
shell>rpm -Uhv MySQL-Cluster-server-gpl-8.0.20-1.sles11.i386.rpm
这将在目录中安装具有存储引擎支持的MySQL服务器二进制文件(mysqld),以及所有需要的MySQL Server支持文件。它还安装了mysql.server和mysqld_safe启动脚本(分别在和中)。RPM安装程序应自动处理常规配置问题(例如,如果需要,请创建用户和组)。NDB
/usr/sbin
/usr/share/mysql
/usr/bin
mysql
要管理SQL节点(MySQL服务器),还应该安装client
RPM,如下所示:
shell>rpm -Uhv MySQL-Cluster-client-gpl-8.0.20-1.sles11.i386.rpm
这将安装mysql客户端程序。
管理节点。要安装NDB群集管理服务器,仅需要使用server
RPM。将此RPM复制到用于承载管理节点的计算机,然后通过以系统root用户身份运行以下命令进行安装(必要时替换为RPM显示的名称,以匹配server
从MySQL网站下载的RPM的名称):
shell>rpm -Uhv MySQL-Cluster-server-gpl-8.0.20-1.sles11.i386.rpm
尽管此RPM安装了许多其他文件,但实际上只需要管理服务器二进制文件ndb_mgmd(在/usr/sbin
目录中)即可运行管理节点。该server
RPM还安装ndb_mgm,在NDB
管理客户端。
有关使用Oracle提供的RPM安装MySQL的一般信息,请参见“使用Oracle的RPM软件包在Linux上安装MySQL”。有关所需的安装后配置的信息,请参见“ NDB群集的初始配置”。
使用.deb文件安装NDB群集
本节提供有关使用.deb
Oracle为此目的提供的文件在Debian和相关Linux发行版(例如Ubuntu)上安装NDB Cluster的信息。
Oracle还为Debian和其他发行版提供了NDB Cluster APT存储库。有关说明和其他信息,请参见使用APT存储库安装MySQL NDB群集。
Oracle .deb
为32位和64位平台的NDB Cluster 提供了安装程序文件。对于基于Debian的系统,仅需要一个安装程序文件。根据适用的NDB群集版本,Debian版本和体系结构,使用此处显示的模式来命名该文件:
mysql-cluster-gpl-ndbver-debiandebianver-arch.deb
在这里,ndbver
是3部分NDB
引擎版本号,debianver
是Debian的主要版本(8
或9
),arch
是i686
或之一x86_64
。在下面的示例中,我们假设您希望在64位Debian 9系统上安装NDB 8.0.20。在这种情况下,安装程序文件名为mysql-cluster-gpl-8.0.20-debian9-x86_64.deb-bundle.tar
。
下载了适当的.deb
文件后,您可以将其解压缩,然后使用dpkg
,从命令行进行安装,如下所示:
shell>dpkg -i mysql-cluster-gpl-8.0.20-debian9-i686.deb
您也可以使用dpkg
如下所示删除它:
shell>dpkg -r mysql
安装程序文件还应该与大多数处理.deb
文件的图形软件包管理器兼容,例如GDebi
Gnome桌面。
该.deb
文件将在下的NDB Cluster安装,其中是包含的MySQL服务器的两部分发行系列版本。对于NDB 8.0,始终为。目录布局与通用Linux二进制分发版的目录布局相同(请参见,“通用Unix / Linux二进制软件包的MySQL安装布局”),但在其中找到了启动脚本和配置文件,而不是。所有NDB Cluster可执行文件(例如ndb_mgm,ndbd和ndb_mgmd)都放置在目录中。/opt/mysql/server-version/
version
5.7
support-files
share
bin
在Linux上从源代码构建NDB群集
本节提供有关在Linux和其他类似Unix的平台上编译NDB Cluster的信息。从源代码构建NDB群集类似于构建标准的MySQL Server,尽管它在此处讨论的几个关键方面有所不同。有关从源代码构建MySQL的一般信息,请参见“从源代码安装MySQL”。有关在Windows平台上编译NDB群集的信息,请参见“在Windows上从源代码编译和安装NDB群集”。
构建MySQL NDB Cluster 8.0需要使用MySQL Server 8.0源。这些可从MySQL下载页面https://dev.mysql.com/downloads/获得。存档的源文件的名称应类似于mysql-8.0.20.tar.gz
。您也可以从GitHub上获取源代码,网址为 https://github.com/mysql/mysql-server。
注意在以前的版本中,不支持从标准MySQL Server来源构建NDB Cluster。在MySQL 8.0和NDB Cluster 8.0中,情况已不再如此-两种产品现在都是从相同的来源构建的。
CMake的WITH_NDBCLUSTER
选项使管理节点,数据节点和其他NDB群集程序的二进制文件得以构建;它还会导致mysqld在存储引擎支持下进行编译。构建NDB群集时,需要此选项(或其别名和之一)。NDB
WITH_NDBCLUSTER_STORAGE_ENGINE
WITH_PLUGIN_NDBCLUSTER
重要
WITH_NDB_JAVA
默认情况下启用该选项。这意味着,默认情况下,如果CMake在系统上找不到Java的位置,则配置过程将失败;如果您不希望启用Java和ClusterJ支持,则必须使用来配置构建以明确指出这一点-DWITH_NDB_JAVA=OFF
。使用WITH_CLASSPATH
在需要时提供的Java类路径。
有关特定于构建NDB群集的CMake选项的详细信息,请参阅《编译NDB群集的选项》。
运行make && make install(或系统的等效文件)后,结果类似于将预编译的二进制文件解压缩到相同位置所获得的结果。
管理节点。从源代码构建并运行默认的make install时,可以在中找到管理服务器和管理客户端二进制文件(ndb_mgmd和ndb_mgm)/usr/local/mysql/bin
。管理节点主机上只需要存在ndb_mgmd;但是,在同一主机上存在ndb_mgm也是一个好主意。这些可执行文件均不需要在主机文件系统上的特定位置。
数据节点。数据节点主机上唯一需要的可执行文件是数据节点二进制文件ndbd或ndbmtd。(例如,主机上不必存在mysqld。)默认情况下,从源构建时,此文件放置在目录中/usr/local/mysql/bin
。要在多个数据节点主机上安装,请仅使用ndbd或ndbmtd需要复制到其他主机上。(这假定所有数据节点主机都使用相同的体系结构和操作系统;否则,您可能需要针对每个不同的平台分别进行编译。)数据节点二进制文件不必位于主机文件系统上的任何特定位置,只要位置是已知的。
从源代码编译NDB群集时,不需要特殊选项即可构建多线程数据节点二进制文件。配置具有NDB
存储引擎支持的构建会自动构建ndbmtd。make install将ndbmtd二进制bin
文件以及mysqld,ndbd和ndb_mgm放在安装目录中。
SQL节点。如果编译具有集群支持的MySQL,并执行默认安装(使用make install作为系统root
用户),则mysqld将放置在中/usr/local/mysql/bin
。按照“从源代码安装MySQL”中给出的步骤进行操作,以使mysqld可以使用。如果要运行多个SQL节点,则可以在多个计算机上使用同一mysqld可执行文件及其相关支持文件的副本。最简单的方法是复制整个/usr/local/mysql
目录和其中包含的所有目录和文件到另一个SQL节点主机,然后在每台计算机上重复“从源代码安装MySQL”中的步骤。如果使用非默认PREFIX
选项配置构建,则必须相应地调整目录。
在“ NDB群集的初始配置”中,我们为示例NDB群集中的所有节点创建配置文件。