一旦 NDB 集群可执行文件和所需的配置文件就位,执行集群的初始启动只是简单地启动集群中的每个节点进程。每个集群节点进程必须单独启动,并在其所在的主机计算机上。管理节点应该首先启动,然后是数据节点,最后是 SQL 节点。
-
在管理节点主机上,从命令行发出以下命令以启动管理节点进程。输出应该类似于这里所示:
C:\mysql\bin> ndb_mgmd 2010-06-23 07:53:34 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-8.3.0-ndb-8.3.0 2010-06-23 07:53:34 [MgmtSrvr] INFO -- Reading cluster configuration from 'config.ini'
管理节点进程继续将日志输出打印到控制台。这是正常的,因为管理节点不是作为 Windows 服务运行的。(如果您曾经在 Unix 类似平台上使用过 NDB 集群,例如 Linux,您可能注意到管理节点在 Windows 上的默认行为与 Unix 系统上的行为相反,在 Unix 系统上,它默认作为 Unix 守护进程运行。这种行为也适用于 Windows 上运行的 NDB 集群数据节点进程。)因此,不要关闭运行 ndb_mgmd.exe 的窗口;这样做将杀死管理节点进程。(参见 第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”,其中我们展示如何将 NDB 集群进程安装为 Windows 服务。)
所需的
-f
选项告诉管理节点在哪里找到全局配置文件 (config.ini
)。该选项的长形式是--config-file
。ImportantNDB 集群管理节点缓存从
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 的控制台窗口;这样做将杀死 ndbd.exe。(更多信息,请参见 第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”。)
-
不要启动 SQL 节点;它不能连接到集群,直到数据节点完成启动,这可能需要一些时间。相反,在管理节点主机上的新控制台窗口中,启动 NDB 集群管理客户端 ndb_mgm.exe,它应该在
C:\mysql\bin
中。不要尝试重新使用运行 ndb_mgmd.exe 的控制台窗口通过键入 CTRL+C,因为这将杀死管理节点。)输出应该类似于这样: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 Node 2: starting (Last completed phase 3) (mysql-8.3.0-ndb-8.3.0) Node 3: starting (Last completed phase 3) (mysql-8.3.0-ndb-8.3.0) Node 2: starting (Last completed phase 4) (mysql-8.3.0-ndb-8.3.0) Node 3: starting (Last completed phase 4) (mysql-8.3.0-ndb-8.3.0) Node 2: Started (version 8.3.0) Node 3: Started (version 8.3.0) ndb_mgm>
Note在管理客户端中输入的命令不区分大小写;我们使用大写形式作为这些命令的规范形式,但您在输入它们时不需要遵守这种约定。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 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @198.51.100.30 (Version: 8.3.0-ndb-8.3.0, Nodegroup: 0, *) id=3 @198.51.100.40 (Version: 8.3.0-ndb-8.3.0, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @198.51.100.10 (Version: 8.3.0-ndb-8.3.0) [mysqld(API)] 1 node(s) id=4 @198.51.100.20 (Version: 8.3.0-ndb-8.3.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 服务”)。