一旦 NDB 集群可执行文件和所需的配置文件到位,执行集群的初始启动只需启动集群中所有节点的 NDB 集群可执行文件即可。每个集群节点进程必须单独启动,并在其所在的宿主机上启动。管理节点应首先启动,然后是数据节点,最后是任何 SQL 节点。
在管理节点宿主机上,从命令行发出以下命令以启动管理节点进程。输出应该类似于此处显示的内容
C:\mysql\bin> ndb_mgmd 2010-06-23 07:53:34 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-8.4.0-ndb-8.4.0 2010-06-23 07:53:34 [MgmtSrvr] INFO -- Reading cluster configuration from 'config.ini'
管理节点进程继续将日志输出打印到控制台。这是正常的,因为管理节点没有作为 Windows 服务运行。(如果您在类 Unix 平台(如 Linux)上使用过 NDB 集群,您可能会注意到,Windows 上管理节点在这方面的默认行为与其在 Unix 系统上的行为实际上相反,在 Unix 系统上,默认情况下它作为 Unix 守护进程运行。对于在 Windows 上运行的 NDB 集群数据节点进程,这种行为也是如此。)因此,请勿关闭运行 ndb_mgmd.exe 的窗口;这样做会杀死管理节点进程。(请参阅 第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”,其中我们将展示如何将 NDB 集群进程安装和运行为 Windows 服务。)
所需的
-f
选项告诉管理节点在哪里可以找到全局配置文件 (config.ini
)。此选项的长格式为--config-file
。重要NDB 集群管理节点会缓存它从
config.ini
读取的配置数据;一旦创建了配置缓存,除非被强制,否则它会在后续启动时忽略config.ini
文件。这意味着,如果管理节点由于此文件中的错误而无法启动,则必须在更正其中的任何错误后使管理节点重新读取config.ini
。您可以通过在命令行中使用 ndb_mgmd.exe 的--reload
或--initial
选项来启动它。这两个选项都可以刷新配置缓存。在管理节点的
my.ini
文件中使用这些选项是不必要或不可取的。在每个数据节点宿主机上,运行此处显示的命令以启动数据节点进程
C:\mysql\bin> ndbd 2010-06-23 07:53:46 [ndbd] INFO -- Configuration fetched from 'localhost:1186', generation: 1
在每种情况下,数据节点进程的第一行输出应类似于前面示例中显示的内容,并在其后跟随其他几行日志输出。与管理节点进程一样,这是正常的,因为数据节点没有作为 Windows 服务运行。因此,请勿关闭运行数据节点进程的控制台窗口;这样做会杀死 ndbd.exe。(有关更多信息,请参阅 第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”。)
现在先不要启动 SQL 节点;在数据节点完成启动之前,它无法连接到集群,这可能需要一些时间。相反,在管理节点宿主机上的新控制台窗口中,启动 NDB 集群管理客户端 ndb_mgm.exe,它应该位于管理节点宿主机上的
C:\mysql\bin
中。(不要尝试通过键入 CTRL+C 来重用运行 ndb_mgmd.exe 的控制台窗口,因为这会杀死管理节点。)结果输出应如下所示C:\mysql\bin> ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm>
当出现提示符
ndb_mgm>
时,表示管理客户端已准备好接收 NDB 集群管理命令。您可以通过在管理客户端提示符处输入ALL STATUS
来观察数据节点启动时的状态。此命令会导致数据节点启动序列的运行报告,该报告应类似于以下内容ndb_mgm> ALL STATUS Connected to Management Server at: localhost:1186 (using cleartext) Node 2: starting (Last completed phase 3) (mysql-8.4.0-ndb-8.4.0) Node 3: starting (Last completed phase 3) (mysql-8.4.0-ndb-8.4.0) Node 2: starting (Last completed phase 4) (mysql-8.4.0-ndb-8.4.0) Node 3: starting (Last completed phase 4) (mysql-8.4.0-ndb-8.4.0) Node 2: Started (version 8.4.0) Node 3: Started (version 8.4.0) ndb_mgm>
注意在管理客户端中发出的命令不区分大小写;我们使用大写作为这些命令的规范形式,但在将它们输入 ndb_mgm 客户端时,您无需遵守此约定。有关更多信息,请参阅 第 25.6.1 节,“NDB 集群管理客户端中的命令”。
ALL STATUS
生成的输出可能与此处显示的不同,具体取决于数据节点能够启动的速度、您使用的 NDB 集群软件的版本号以及其他因素。重要的是,当您看到两个数据节点都已启动时,就可以启动 SQL 节点了。您可以保持 ndb_mgm.exe 运行;它对 NDB 集群的性能没有负面影响,并且我们在下一步中使用它来验证 SQL 节点在您启动它后是否已连接到集群。
在指定为 SQL 节点宿主的计算机上,打开控制台窗口并导航到解压缩 NDB 集群二进制文件的目录(如果您按照我们的示例进行操作,则为
C:\mysql\bin
)。通过从命令行调用 mysqld.exe 来启动 SQL 节点,如下所示
C:\mysql\bin> mysqld --console
--console
选项会导致日志信息被写入控制台,这在出现问题时会有所帮助。(一旦您确定 SQL 节点以令人满意的方式运行,您可以将其停止并重新启动它,而无需使用--console
选项,以便正常执行日志记录。)在管理节点宿主机上运行管理客户端 (ndb_mgm.exe) 的控制台窗口中,输入
SHOW
命令,该命令应生成类似于以下内容的输出ndb_mgm> SHOW Connected to Management Server at: localhost:1186 (using cleartext) Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @198.51.100.30 (Version: 8.4.0-ndb-8.4.0, Nodegroup: 0, *) id=3 @198.51.100.40 (Version: 8.4.0-ndb-8.4.0, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @198.51.100.10 (Version: 8.4.0-ndb-8.4.0) [mysqld(API)] 1 node(s) id=4 @198.51.100.20 (Version: 8.4.0-ndb-8.4.0)
您还可以在 mysql 客户端 (mysql.exe) 中使用
SHOW ENGINE NDB STATUS
语句来验证 SQL 节点是否已连接到 NDB 集群。
您现在应该可以使用 NDB 集群的 NDBCLUSTER
存储引擎来处理数据库对象和数据。有关更多信息和示例,请参阅 第 25.3.5 节,“具有表和数据的 NDB 集群示例”。
您还可以将 ndb_mgmd.exe、ndbd.exe 和 ndbmtd.exe 安装为 Windows 服务。有关如何执行此操作的信息,请参阅 第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”)。