分配节点ID失败,错误:'错误:无法分配节点ID

Posted

技术标签:

【中文标题】分配节点ID失败,错误:\'错误:无法分配节点ID【英文标题】:Failed to allocate nodeid, error: 'Error: Could not alloc node id分配节点ID失败,错误:'错误:无法分配节点ID 【发布时间】:2015-09-09 05:39:33 【问题描述】:

ndb_mgmd 似乎没有正确读取配置文件

这是我的配置文件的一部分

[ndbd]
# Options for data node "A":
                                # (one [ndbd] section per data node)
hostname=abhyas.db01            # Hostname or IP address
datadir=/usr/local/mysql/data   # Directory for this data node's data files

[ndbd]
# Options for data node "B":
hostname=abhyas.db02            # Hostname or IP address
datadir=/usr/local/mysql/data   # Directory for this data node's data files

[mysqld]
# SQL node options:
hostname=abhyas.dbmgr           # Hostname or IP address
                                # (additional mysqld connections can be
                                # specified for this node for various
                                # purposes such as running ndb_restore)

但是

ndb_mgm

显示不同的东西

[root@abhyas abhyas_mgr]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> SHOW
Connected to Management Server at: abhyas.dbmgr:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from abhyas.db01)
id=3 (not connected, accepting connect from abhyas.db01)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.102.134  (mysql-5.6.25 ndb-7.4.7)

[mysqld(API)]   1 node(s)
id=4 (not connected, accepting connect from abhyas.dbmgr)

ndb_mgm> EXIT

如您所见,在我的配置文件中,我有 abhyas.db01abhyas.db02 作为主机。

但集群配置将 NDB 节点显示为两个节点,均来自 abhyas.db01。 (这不是我想要的,至少现在不是)。

[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from abhyas.db01)
id=3 (not connected, accepting connect from abhyas.db01)

现在,我错误地使用 config.ini 文件启动 ndb_mgmd,其中 [ndbd] 条目都指向 abhyas.db01,但我立即关闭了 ndb_mgm 并更改了配置文件中的条目像我上面粘贴的那样显示。

但由于某种原因,ndb_mgmd 仍然采用旧配置?

我该如何解决这个问题?

谢谢。

PS - 不,这不是防火墙问题。 iptables 已关闭。此外,abhyas.db01 的 ndbd 无论如何都能成功连接。

【问题讨论】:

【参考方案1】:

没关系,想通了。

只需在启动 ndb_mgmd 时指定 --reload 选项

ndb_mgmd --reload --config-file /home/abhyas_mgr/config.ini 

[root@abhyas bin]# ndb_mgmd --reload --config-file /home/abhyas_mgr/config.ini 
MySQL Cluster Management Server mysql-5.6.25 ndb-7.4.7
[root@abhyas bin]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: abhyas.dbmgr:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from abhyas.db01)
id=3 (not connected, accepting connect from abhyas.db02)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.102.134  (mysql-5.6.25 ndb-7.4.7)

[mysqld(API)]   1 node(s)
id=4 (not connected, accepting connect from abhyas.dbmgr)

ndb_mgm> 

中提琴!

【讨论】:

【参考方案2】:

@anu 的回答是正确的。 但首先 - 您需要先关闭管理集群 PID,方法是发出命令 -

ndb_mgm -e "SHUTDOWN"

那么,--reload

ndb_mgmd --reload --config-file /var/lib/mysql-cluster/config.ini

【讨论】:

以上是关于分配节点ID失败,错误:'错误:无法分配节点ID的主要内容,如果未能解决你的问题,请参考以下文章

未能在 <sql_node_ipaddr> 处为 API 分配 nodeid。返回错误:“未找到 mysqld(API) 的可用节点 ID。”

尝试运行快速入门。错误没有图像 ID

链表:将值分配给节点的下一部分时出现分段错误错误

如何在多个 GPU 节点上获取分配给 SLURM 作业的 GPU ID?

docker中es启动分配节点失败

无法使用服务 api 发布需要预分配值的节点