add package {--basedir=|-b }path
[{--hosts=|-h }host_list] package_name
host_list:
host[,host[,...]]
此命令创建一个新包,或者,如果名为的包
package_name
已经存在,则此命令扩展包定义。
--basedir
选项(缩写形式
-b
:)指示 MySQL NDB Cluster 安装目录在列出的主机上的位置,并且是必需的
。这必须是 MySQL NDB Cluster 软件所在的顶级目录的路径(例如,/usr/local/mysql
),并且不应
包括MySQL NDB Cluster
bin
、libexec
安装目录中的其他子目录。
--hosts
可以使用选项(缩写形式
:)将主机指定为逗号分隔的列表
-h
;但是,此选项不是必需的。如果
--hosts
省略,path
则假定对使用此包创建的集群中的所有主机都有效(请参阅
第 4.4.1 节“create cluster
命令”)。
add package
如果您尚未定义任何站点(add package
命令中引用的每个主机必须与站点相关联), 则无法执行。有关定义站点的更多信息, 请参见第 4.2.6 节“create site
命令” 。add package
当使用命令 首次为站点添加包 时,无论何时--hosts
使用该选项,主机列表都必须包含 mcm客户端当前连接到的mcmd代理 的主机,以允许 MySQL 集群管理器访问包的版本信息。
假设我们有两台名为tonfisk
和的 Linux 主机,两台主机上都flundra
安装了 MySQL NDB Cluster 软件/usr/local/mysql
。在这种情况下,您可以创建一个名为
mypackage
account for both hosts 的包,如下所示:
mcm> add package --basedir=/usr/local/mysql mypackage;
+----------------------------+
| Command result |
+----------------------------+
| Package added successfully |
+----------------------------+
1 row in set (0.71 sec)
当这个包用于创建集群时,MySQL Cluster Manager 知道它应该
/usr/local/mysql
在每个主机上的目录中找到 MySQL NDB Cluster 软件。
对于以 Windows 路径作为值的 MySQL Cluster Manager 客户端命令选项的选项,必须使用正斜杠 ( /
) 代替反斜杠 ( \
),因此如果
tonfisk
和flundra
是 Windows 主机,其中 MySQL NDB Cluster 已安装到该目录
C:\mysql
,则相应的添加包命令看起来像这样(
--basedir
突出显示该选项):
mcm> add package --basedir=c:/mysql mypackage;
+----------------------------+
| Command result |
+----------------------------+
| Package added successfully |
+----------------------------+
1 row in set (0.71 sec)
在刚刚给出的示例中,我们也可以将命令作为add package --basedir=/usr/local/mysql
--hosts=tonfisk,flundra mypackage
(或add
package --basedir=c:/mysql --hosts=tonfisk,flundra
mypackage
在 Windows 上)发出并获得相同的结果,但该
--hosts
选项不是必需的,因为 MySQL NDB Cluster 软件的位置在每个主机上都是相同的。但是,让我们假设该软件安装在 host 上的 /usr/local/ndb-host-10 和 host 上
tonfisk
的 /usr/local/ndb-host-20 中
flundra
。在这种情况下,我们必须发出 2 个单独的命令,分别指定主机和基本目录,如下所示:
mcm> add package --basedir=/usr/local/ndb-host-10
> --hosts=tonfisk yourpackage;
+----------------------------+
| Command result |
+----------------------------+
| Package added successfully |
+----------------------------+
1 row in set (0.68 sec)
mcm> add package --basedir=/usr/local/ndb-host-20
> --hosts=flundra yourpackage;
+----------------------------+
| Command result |
+----------------------------+
| Package added successfully |
+----------------------------+
1 row in set (0.81 sec)
假设两台主机都属于一个名为 的站点
mysite
,您可以使用命令验证是否已根据需要创建了这些包
list packages
,如下所示:
mcm> list packages mysite;
+-------------+---------------------------------------+-----------------+
| Package | Path | Hosts |
+-------------+---------------------------------------+-----------------+
| yourpackage | /usr/local/ndb-host-10 | tonfisk |
| | /usr/local/ndb-host-20 | flundra |
| mypackage | /usr/local/mysql | tonfisk,flundra |
+-------------+---------------------------------------+-----------------+
3 rows in set (1.07 sec)
(有关此命令的更多信息,请参阅
第 4.3.3 节“list packages
命令”。)
可以将同一主机(或主机)上的相同基目录(或目录)分配给多个包,如本例所示,其中我们假设主机
tonfisk
和flundra
之前已分配给名为的站点
mysite
:
mcm> add package -b /usr/local/mysql-cluster mypackage;
+----------------------------+
| Command result |
+----------------------------+
| Package added successfully |
+----------------------------+
1 row in set (1.41 sec)
mcm> add package -b /usr/local/mysql-cluster yourpackage;
+----------------------------+
| Command result |
+----------------------------+
| Package added successfully |
+----------------------------+
1 row in set (1.58 sec)
mcm> list packages mysite;
+-------------+--------------------------+-----------------+
| Package | Path | Hosts |
+-------------+--------------------------+-----------------+
| mypackage | /usr/local/mysql-cluster | tonfisk,flundra |
| yourpackage | /usr/local/mysql-cluster | tonfisk,flundra |
+-------------+--------------------------+-----------------+
2 rows in set (0.50 sec)
当启用 IPv6 的 Windows 系统用作 MySQL Cluster Manager 下的 MySQL NDB Cluster 主机时,您必须使用 IPv4 地址引用这些主机。否则,MySQL Cluster Manager 将无法连接到这些主机上的代理进程。请参阅 第 5.1 节,“MySQL 集群管理器使用和设计限制”。