——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集群导入MySQL集群管理器”.
创建集群
需要以下参数:
一个
package_name
的值提供——包
选项(简式:- p
).这必须是以前注册使用的包的名称添加包
.一个列表(
process_host_list
),它们运行的主机,以及它们的节点id(可选),作为——processhosts
选项(简式:- r
),列表项之间用逗号分隔。与在MySQL集群管理器命令中作为选项值传递的其他列表一样,您不能在逗号之前或之后使用空格。中的每一项
process_host_list
由MySQL集群进程的名称组成,可能以冒号(:
字符后接进程节点id,使用双耳(双耳)连接到它所在主机的名称(@
(有时也被称为”在”标志)。进程允许的值为ndb_mgmd
,ndbd
,mysqld
.当集群使用MySQL cluster NDB 7.0或更高版本时,您也可以使用ndbmtd
进程名称;换句话说,一个有效的进程名是MySQL集群进程守护进程二进制的名称。如果指定了节点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 Cluster NDB 7.0及以上版本:ndbd
,ndbmtd
)SQL节点进程(
mysqld
)自定义NDB API应用程序(
ndbapi
)有关编写自己的NDB API应用程序的信息,请参见NDB API,在MySQL集群API开发指南.
而项目的列出顺序并不影响
创建集群
命令成功后,我们建议您遵循这个约定,以提高可读性,以及与其他MySQL集群管理工具的兼容性,例如ndb_mgm.创建集群
导致集群节点id按照节点编号中指定的顺序连续分配process_host_list
,数据节点进程的节点id以1开头,数据节点进程以外的进程的节点id以49开头。对于MySQL集群管理器1.3.3和更早的版本,尝试手动分配小于49的节点idndb_mgmd
,mysqld
,或ndbapi
失败并报错;不过,这一限制已在两方面有所放宽:对于MySQL集群管理器1.3.1及更高版本
——进口
选项导致忽略此限制,本节稍后将对此进行讨论。对于MySQL集群管理器1.3.4及以后版本,这个限制现在已经完全解除了。但是,仍然建议您遵循为数据节点保留节点ID 1 ~ 48的最佳实践。
列表中引用的每个主机必须是所使用的包所在站点的一部分
创建集群
定义。对于类型的过程
mysqld
而且ndbapi
,主机名是必需的,但在正在运行的集群中不是强制的。也就是说,an(api)
节在集群中创建config.ini
文件,但是没有主机名
参数指定;因此,mysqld
或ndbapi
可以从任何主机连接。(目前,没有办法使用MySQL集群管理器来指定一个mysqld
或ndbapi
进程被限制为从单个主机连接。)集群的名称。一旦创建了集群,这个名称将用于在其他集群管理命令中引用它,例如
删除集群
,启动集群
,停止集群
.与MySQL集群管理器使用的其他对象名称一样cluster_name
根据本文档其他地方给出的标识符规则,必须是有效的(参见第四章,MySQL集群管理客户端命令).
一个额外的——详细
选项导致创建集群
以便在执行时输出额外的信息,如本节后面所示。
的——进口
选项,在MySQL集群管理器1.3.0中引入,标记正在创建的集群作为导入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集群管理器1.3.1开始——进口
选项还覆盖了通常的要求(直到MySQL集群管理器1.3.4),即分配给数据节点以外的进程的节点id必须大于48。(错误# 18181039)
虽然可以导入到没有此选项创建的集群中,但这是不可取的,因为集群不能防止意外地执行前面列出的任何操作,这可能会导致令人困惑的或误导性的错误,并可能出现其他问题。因此,强烈建议您始终使用——进口
在这种情况下创建集群的选项。
关于将集群导入MySQL集群管理器的更多信息,包括示例,请参见3.5节,“将MySQL集群导入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
进程正在运行。
对新创建的集群的配置更改可以使用集
命令,然后启动集群。这通常比在集群启动后进行更可取,因为集
在正在运行的集群中更改配置的命令可能需要滚动重启,而滚动重启具有许多节点或大量数据(或两者都有)的集群可能需要大量时间才能完成。