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则假定对使用此包创建的集群中的所有主机都有效(请参阅
第 5.4.1 节,“create cluster命令”)。
add package如果您尚未定义任何站点(add package命令中引用的每个主机必须与站点相关联), 则无法执行。有关定义站点的更多信息, 请参见第 5.2.6 节“create site命令” 。add package当使用命令 首次为站点添加包 时,无论何时--hosts使用该选项,主机列表都必须包含 mcm客户端当前连接到的mcmd代理 的主机,以允许 MySQL 集群管理器访问包的版本信息。
假设我们有两台名为tonfisk
和的 Linux 主机,两台主机上都flundra安装了 MySQL NDB Cluster 软件/usr/local/mysql。在这种情况下,您可以创建一个名为
mypackageaccount 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)
(有关此命令的更多信息,请参阅
第 5.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 将无法连接到这些主机上的代理进程。请参阅 第 6.1 节,“MySQL 集群管理器使用和设计限制”。