目录
本章各节描述了 MySQL Cluster Manager 1.4.8 客户端中用于定义站点、包和 MySQL NDB Cluster 实例(“集群”)等任务的命令;配置 MySQL NDB Cluster;并获取正在运行的 MySQL NDB Cluster 的状态。这些命令使用 MySQL NDB Cluster 发行版中包含的mysql 客户端程序向管理代理发出(有关不特定于使用 MySQL Cluster Manager的mysql客户端的信息,请参阅mysql — MySQL 命令行客户端)。每个 MySQL Cluster Manager 客户端命令都采用此处显示的形式:
instruction [options] [arguments]
options:
option [option] [...]
option:
--option-long-name[=value-list]
| -option-short-name [value-list]
value-list:
value[,value[,...]]
arguments:
argument [argument] [...]
考虑以下 MySQL Cluster Manager 命令,它启动一个名为 MySQL NDB Cluster
mycluster
并在后台删除过程,以便客户端可以同时用于执行其他命令,而不必等待start
cluster
命令完成:
start cluster --background mycluster;
在此示例中,命令包含一条start
cluster
指令。一条指令由一个或两个关键字组成,例如set
, 或show
status
。该指令由其后的
--background
选项修改;但是,此选项不分配任何值。
大多数命令选项除了长格式外,还有由单个字母组成的短格式。使用
--background
选项的缩写形式,前面的例子也可以这样写:
start cluster -B mycluster;
选项的长形式必须以双破折号 ( --
) 开头,并且不区分大小写(小写是规范形式)。选项的缩写形式必须以单个破折号 ( -
) 开头,并且区分大小写。在任何一种情况下,破折号或字符必须紧接在选项名称之前,并且它们之间不能有空格字符。否则,MySQL Cluster Manager 客户端无法正确解析命令。本节稍后将提供有关多头和空头期权形式的更多信息。
不要将提供给 MySQL Cluster Manager 客户端命令的选项与 mysql客户端选项混淆。MySQL Cluster Manager 客户端命令选项始终用作 MySQL Cluster Manager 客户端命令的一部分; 调用它时 不会 传递给mysql客户端。
此外,您不能在 MySQL Cluster Manager 客户端中发出查询或其他 SQL 语句。这些不被客户端识别,并被错误拒绝。反之亦然:标准 mysql客户端无法识别 MySQL Cluster Manager 客户端命令。
刚才显示的指令采用参数
mysite
。参数通常是一个标识符,用于命名要影响的对象;在这种情况下,该命令会删除名称与参数匹配的站点。(有关更多信息,请参阅第 4.2.6 节“create site
命令”。)
--verbose
可以为
create cluster
、add process
和
list hosts
命令使用
附加选项。在这两种情况下,使用该选项都会导致命令返回受命令影响的 MySQL NDB Cluster 进程的列表;这包括它们的节点 ID、进程类型和它们所在的主机。
客户端命令中的标识符。 合法的 MySQL Cluster Manager 标识符由以下字符的任意序列组成:
a
贯穿始终z
的 字母A
Z
数字
0
通过9
破折号 (
-
)、句点 (.
) 和下划线 (_
) 字符
MySQL Cluster Manager 标识符必须以字母或数字开头。
客户端命令的区分大小写规则。 MySQL Cluster Manager 标识符、命令、命令选项、进程名称和配置属性区分大小写的规则如下:
标识符区分大小写。例如,
delete site mycluster
不能用于删除名为 的站点myCluster
。命令关键字和命令选项的长格式不区分大小写。例如,三个命令
delete cluster mycluster
、DELETE CLUSTER mycluster
和DeLeTe cLuStEr mycluster
可以删除名为 的 MySQL NDB Cluster 实例mycluster
。在本手册中,我们以小写形式显示命令关键字和命令选项的长格式,但如果您不想这样做,则不必遵循此约定。
命令选项的缩写形式区分大小写。例如,
-b
(小写)是--basedir
选项的缩写形式,但-B
(大写)是--background
选项的缩写形式。MySQL NDB Cluster 进程的名称不区分大小写。例如,命令
get --include-defaults DataMemory:ndbd mycluster
或get --include-defaults datamemory:NDBD mycluster
报告为名为的集群中的每个ndbd 进程mycluster
。在本手册中,我们以小写形式显示 MySQL NDB Cluster 进程的名称。如果您不愿意,则无需遵守此约定;但是,由于相应的可执行文件被命名并且必须以小写形式调用,因此我们建议您使用小写形式。
配置属性名称不区分大小写。例如,命令
get --include-defaults DataMemory:ndbd mycluster
或get --include-defaults datamemory:ndbd mycluster
返回为名为集群中的每个ndbd 进程mycluster
;命令set engine-condition-pushdown:mysqld:4=0 mycluster
或 禁用mysqldset Engine-Condition-Pushdown:mysqld:4=0 mycluster
进程中的条件下推优化,该在名为 的 MySQL NDB 集群 中具有节点 ID 。4
mycluster
笔记MySQL Cluster Manager 中的配置属性来自两个不同的来源:MySQL NDB Cluster 配置参数和 MySQL Server 选项。MySQL NDB Cluster 配置参数不区分大小写,但它们的规范形式使用大驼峰字母(即包括首字母在内的中间大写)。这意味着无论您是使用 MySQL Cluster Manager 客户端还是在
config.ini
文件中为数据内存设置值,您都可以将其称为DataMemory
、datamemory
或 ,dATAmEMORY
而不会产生任何负面影响。但是,MySQL 服务器命令行选项区分大小写并且只使用小写字母。这意味着,例如,set Engine-Condition-Pushdown:mysqld:4=0 mycluster
在 MySQL Cluster Manager 客户端中,可以在指示的mysqld进程中禁用条件下推,但是如果您使用从系统提示符调用mysqld--Engine-Condition-Pushdown=0
可执行文件, mysqld将无法启动。在本手册中,为了便于识别,我们将配置属性名称显示为具有与其他 MySQL 文档中使用的相同字母大小写;因此,我们总是提到
DataMemory
, 而不是datamemory
orDATAMEMORY
和engine-condition-pushdown
, 而不是Engine-Condition-Pushdown
orENGINE-CONDITION-PUSHDOWN
。虽然在使用 MySQL Cluster Manager 时不需要执行此操作,但我们建议您也遵循此约定。
包含空格字符的值必须使用单引号 ( '
) 字符引用。例如,如果您希望定义一个以使用(和之间出现空格
)命名mypackage
的站点命名的程序包作为所有主机上基本目录的路径,则正确的命令是。
mysite
/usr/local/mysql
cluster/7.3
mysql
cluster
add package
--basedir='/usr/local/mysql cluster/7.3' mypackage
为了减少读取和输入 MySQL Cluster Manager 命令时出错的可能性,我们建议尽可能避免使用空格字符。
每个命令必须以终止符结尾。默认情况下,这是分号 ( ;
) 字符。但是,序列\g
和\G
也支持作为命令终止符。\G
终止符导致输出被垂直格式化(与标准 mysql 客户端相同),如本例所示:
mcm> get DataMemory mycluster\G
*************************** 1. row ***************************
Name: DataMemory
Value: 500M
Process1: ndbd
Id1: 2
Process2:
Id2:
Level: Process
Comment:
*************************** 2. row ***************************
Name: DataMemory
Value: 500M
Process1: ndbd
Id1: 3
Process2:
Id2:
Level: Process
Comment:
2 rows in set (0.22 sec)
按照惯例(出于可读性原因),当以 Backus-Naur 格式显示命令的语法或在本文中内联包含 MySQL Cluster Manager 命令时,我们通常不包含命令终止符。但是,如果在 MySQL Cluster Manager 客户端中输入命令时不使用语句终止符,客户端会显示特殊的“ waiting... ”提示->
,直到您提供终止符,如下所示:
mcm> list sites
->
->
->
-> ;
Empty set (1.50 sec)
(当你不能用终止符结束语句时 ,这与mysql客户端 的行为相同。)
在许多情况下,命令选项也可以接受(甚至需要)一组一个或多个values
. 下一个示例包括这样一个选项,并且还通过将它们作为逗号分隔列表传递给选项来演示在单个选项中设置多个值:
mcm> create site --hosts=tonfisk,flundra mysite;
+---------------------------+
| Command result |
+---------------------------+
| Site created successfully |
+---------------------------+
1 row in set (7.41 sec)
刚刚显示的命令创建了一个名为 的站点
,该站点由两个名为和mysite
的主机组成
。(有关此命令的更多信息,请参阅
第 4.2.6 节“命令”。)由于我们使用了
选项的长格式,因此我们需要使用等号 ( ) 来标记选项名称的结尾和值列表的开头。不得在等号前后插入任何空格字符;这样做会导致错误,如下所示:
tonfisk
flundra
create site
--hosts
=
mcm> create site --hosts =grindval,haj yoursite;
ERROR 7 (00MGR): Option --hosts requires a value
mcm> create site --hosts= grindval,haj yoursite;
ERROR 7 (00MGR): Option --hosts requires a value
选项的缩写形式不使用等号。相反,值列表与选项之间用空格隔开。使用
-h
选项,这是选项的缩写形式,
可以像这样输入和执行
--hosts
前面的
命令:create site
mcm> create site -h tonfisk,flundra mysite;
+---------------------------+
| Command result |
+---------------------------+
| Site created successfully |
+---------------------------+
1 row in set (7.41 sec)
选项的缩写形式实际上在选项名称和值列表之间接受多个空格;但是,一个空间就足够了。如果省略空格或尝试使用等号,命令将失败并出现错误,如下所示:
mcm> create site -htonfisk,flundra mysite;
ERROR 6 (00MGR): Illegal number of operands
mcm> create site -h=tonfisk,flundra mysite;
ERROR 3 (00MGR): Illegal syntax
任何包含一个或多个空白字符、一个或多个短划线字符 ( -
) 或两者的选项值都必须使用单引号引起来。多个值只能用逗号分隔;不要在任何逗号前后插入空格。在值列表中的逗号前后使用空格会导致命令失败并出现错误,如下所示:
mcm> create site --hosts=tonfisk, flundra mysite;
ERROR 6 (00MGR): Illegal number of operands
从刚刚显示的示例中可以看出,MySQL Cluster Manager 客户端命令返回一个结果集,就像标准 mysql客户端中的 SQL 语句一样。MySQL Cluster Manager 客户端命令返回的结果集包含以下内容之一:
包含指示命令结果的消息的单行。 上一个示例中的
create site
命令返回了 resultSite created successfully
,通知用户命令成功。列出请求的对象或属性的一行或多行。 此类命令的一个示例是
list processes
,如下所示:mcm> list processes mycluster; +--------+----------+----------+ | NodeId | Name | Host | +--------+----------+----------+ | 49 | ndb_mgmd | flundra | | 1 | ndbd | tonfisk | | 2 | ndbd | grindval | | 50 | mysqld | haj | | 51 | mysqld | torsk | | 52 | ndbapi | * | +--------+----------+----------+ 6 rows in set (0.03 sec)
对于
list processes
,结果中的每一行都包含名为 的 MySQL NDB 集群中节点的 ID 和类型mycluster
,以及运行该进程的主机的名称。一个空的结果集。 当没有任何要报告的内容时,其中一个命令可能会发生这种情况
list
,例如在list sites
创建任何站点之前使用的时间:mcm> list sites; Empty set (0.72 sec)
每个命令必须单独输入;不可能在一行中组合多个命令。
客户端命令通用的选项。 以下三个选项对于大多数 MySQL Cluster Manager 客户端命令是通用的:
--help
(缩写形式:)-?
:对所有客户端命令通用。提供特定于给定命令的帮助输出。有关此选项的更多信息, 请参见 第 4.1 节“在线帮助和信息命令” 。--force
(缩写形式-f
):导致在执行命令时绕过任何安全检查。例如, 如果指定的 MySQL NDB Cluster 中的任何 MySQL NDB Cluster 进程 正在运行,通常会失败;但是, 强制关闭,然后从 MySQL Cluster Manager 的清单 中删除。delete cluster
mycluster
mycluster
delete cluster --force
mycluster
mycluster
mycluster
--force
以下 MySQL Cluster Manager 客户端命令支持 该选项:--background
(缩写形式-B
):MySQL Cluster Manager 客户端不会等待命令完成,而是立即返回命令提示符,允许您在该命令继续在后台执行的同时在客户端中执行其他任务。这在执行可能需要一些时间才能完成的命令时非常有用(例如启动具有大量节点的集群)。create site
除、delete site
、add hosts
、add package
和 之外的所有客户端命令都支持此选项delete package
。