——package=|-P}package_name{——processhosts = | - r}process_host_listcluster_name[(——导入| - m)cluster_name[——verbose | -v]process_host_list:process_name[:node_id) @宿主[,process_name@宿主[…]]process_name: {ndb_mgmd | ndbd | ndbmtd | mysqld | ndbapi}
这个命令创建一个由MySQL集群管理器管理的集群。但是,它不会启动集群(参见4.4.7节”启动集群
命令”).
这个命令还可以用来创建一个指定为导入另一个不在MySQL集群管理器控制下的集群的目标的集群,如本节后面所述,通过使用——进口
选择。另请参阅3.5节,“将MySQL NDB集群导入MySQL集群管理器”.
创建集群
需要以下参数:
一个列表(
process_host_list
MySQL NDB集群进程,运行它们的主机,以及它们的节点id(可选),提供的值——processhosts
选项(简式:- r
),列表项之间用逗号分隔。与在MySQL集群管理器命令中作为选项值传递的其他列表一样,您不能在逗号之前或之后使用空格。中的每一项
process_host_list
包含一个MySQL NDB集群进程的名称,可以用冒号(:
字符后接进程节点id,使用双耳(双耳)连接到它所在主机的名称(@
(有时也被称为”在”标志)。进程允许的值为ndb_mgmd
,ndbd
,mysqld
.当集群使用MySQL NDB cluster 7.0或更高版本时,您也可以使用ndbmtd
进程名称;换句话说,一个有效的进程名是MySQL NDB集群进程守护进程二进制的名称。如果指定了节点id,它们必须在定义的节点类型允许的范围内。为了支持在MySQL集群管理器下的集群中运行你自己的NDB API应用程序,也可以使用
ndbapi
作为流程类型。这样的应用程序可以连接到托管集群。目前,MySQL集群管理器只识别一个NDB API应用程序连接到集群;NDB API应用本身必须手动启动、停止和配置。也可以指定一个或多个”免费的”
mysqld
而且ndbapi
没有任何主机的进程。为此,只需使用通配符*
(星号字符)代替主机名或IP地址,如下所示:”免费的”
mysqld
过程:mysqld@ *
”免费的”
ndbapi
过程:ndbapi@ *
也可以指定节点ID”免费的”的过程。(如果没有指定,MySQL集群管理器会自动分配一个合适的节点ID。)
一个
mysqld
过程或ndbapi
如果进程没有以这种方式指定主机,则允许它从能够通过网络访问集群的任何主机连接到集群。否则,进程只能从指定的主机连接到集群。按惯例,中的项
process_host_list
按流程类型列出,顺序如下:管理节点进程(
ndb_mgmd
)数据节点进程(MySQL NDB集群6.3:
ndbd
;MySQL NDB Cluster 7.0及以上版本:ndbd
,ndbmtd
)SQL节点进程(
mysqld
)自定义NDB API应用程序(
ndbapi
)有关编写自己的NDB API应用程序的信息,请参见NDB API,在MySQL NDB集群API开发指南.
而项目的列出顺序并不影响
创建集群
命令成功后,我们建议您遵循这个约定,以提高可读性,以及与其他MySQL NDB集群管理工具的兼容性ndb_mgm.创建集群
导致集群节点id按照节点编号中指定的顺序连续分配process_host_list
,数据节点进程的节点id以1开头,数据节点进程以外的进程的节点id以49开头。对于MySQL集群管理器1.3.3和更早的版本,尝试手动分配小于49的节点idndb_mgmd
,mysqld
,或ndbapi
失败并报错;但是,在MySQL Cluster Manager 1.3.4及以后版本中,这个限制已经完全解除了。尽管如此,仍然建议您遵循为数据节点保留节点ID 1到48的最佳实践。请注意NDB 8.0支持多达144个数据节点(8.0.18及更高版本)。因此,
创建集群
为以1开头的数据节点进程分配节点id,为以145开头的数据节点进程以外的其他进程分配节点id。对于NDB 8.0集群,手动分配节点ID时,建议按照节点ID 1 ~ 144预留给数据节点。列表中引用的每个主机必须是所使用的包所在站点的一部分
创建集群
定义。对于类型的过程
mysqld
而且ndbapi
,主机名是必需的,但在正在运行的集群中不是强制的。也就是说,an(api)
节在集群中创建config.ini
文件,但是没有主机名
参数指定;因此,mysqld
或ndbapi
可以从任何主机连接。(目前,没有办法使用MySQL集群管理器来指定一个mysqld
或ndbapi
进程被限制为从单个主机连接。)集群的名称。一旦创建了集群,这个名称将用于在其他集群管理命令中引用它,例如
删除集群
,启动集群
,停止集群
.与MySQL集群管理器使用的其他对象名称一样cluster_name
根据本文档其他地方给出的标识符规则,必须是有效的(参见第四章,MySQL集群管理客户端命令).
一个额外的——详细
选项导致创建集群
以便在执行时输出额外的信息,如本节后面所示。
的——进口
选项将创建的集群作为导入MySQL集群管理器外创建的集群的目标。此选项使集群的状态显示为进口
的输出中显示状态
,如下所示:
MCM >显示进程newcluster状态+--------+----------+-------+--------+-----------+--------------+ | NodeId | | | |主机状态过程节点组|包 | +--------+----------+-------+--------+-----------+--------------+ | α1 | ndb_mgmd | |进口| | newpackage | | 5 | ndbdβ| | |进口n / a | newpackage | | 6 | ndbd |γ| |进口n / a | newpackage | | | 10 mysqldδ进口| | | | newpackage | | 11 | ndbapi | * |导入 | | | +--------+----------+-------+--------+-----------+--------------+ 6行设置(0.04秒)
有进口
Status导致任何命令启动集群
,重新启动集群
,启动过程
,停止过程
如果它们在进口集群
命令已经在该集群上执行。它也不可能执行集群升级
在具有with进程的集群上进口
的地位。该集群的其他操作将继续正常执行。
虽然可以导入到没有此选项创建的集群中,但这是不可取的,因为集群不能防止意外地执行前面列出的任何操作,这可能会导致令人困惑的或误导性的错误,并可能出现其他问题。因此,强烈建议您始终使用——进口
在这种情况下创建集群的选项。
关于将集群导入MySQL集群管理器的更多信息,包括示例,请参见3.5节,“将MySQL NDB集群导入MySQL集群管理器”.
例子
考虑MySQL集群管理器客户端中发出的以下命令,它创建了一个名为mycluster
:
创建集群——package=mypackage ->——processhosts=ndb_mgmd@flundra,ndbd@tonfisk,ndbd@grindval,mysqld@flundra -> mycluster;+------------------------------+ | 命令的结果 | +------------------------------+ | 集群成功创建 | +------------------------------+ 1行集(7.71秒)
正如刚才所示的命令所定义的,mycluster
由4个节点组成:主机上的一个管理节点flundra
;两个数据节点—每个主机上一个tonfisk
而且grindval
;和一个SQL节点,也在主机上flundra
.
创建集群——verbose——package=mypackage ->——processhosts=ndb_mgmd@flundra,ndbd@tonfisk,ndbd@grindval,mysqld@flundra -> mycluster;+--------+----------+----------+ | NodeId | |主机名称 | +--------+----------+----------+ | 49 | ndb_mgmd | flundra | | 1 | ndbd | tonfisk | | 2 | ndbd | grindval | | 50 | mysqld | flundra | +--------+----------+----------+ 4行集(0.32秒)
还可以创建此集群的方法是mysqld进程被允许从任何主机连接到集群,并且能够通过网络到达其他集群主机,如下所示:
创建集群——package=mypackage ->——processhosts=ndb_mgmd@flundra,ndbd@tonfisk,ndbd@grindval,mysqld@* -> mycluster;+------------------------------+ | 命令的结果 | +------------------------------+ | 集群成功创建 | +------------------------------+ 1行集(7.71秒)
在a”免费的”ndbapi
MySQL集群管理器安装在MySQL集群管理器所在的主机上时,不需要安装MySQL集群管理器ndbapi
进程正在运行。
对新创建的集群的配置更改可以使用集
命令,然后启动集群。这通常比在集群启动后进行更可取,因为集
在正在运行的集群中更改配置的命令可能需要滚动重启,而滚动重启具有许多节点或大量数据(或两者都有)的集群可能需要大量时间才能完成。