无法为 API 分配 nodeid

无法为 API 分配 nodeid

我正在运行一个非常小的 MySQL 集群,其配置几乎直接取自文档。数据节点连接正常,但管理服务器拒绝接受 API 节点。以下是发生的情况:

INFO     -- Node 2: Initial start, waiting for 3 to connect,  nodes [ all: 2 and 3 connected: 2 no-wait:  ]
INFO     -- Node 3: Initial start, waiting for 2 to connect,  nodes [ all: 2 and 3 connected: 3 no-wait:  ]
WARNING  -- Failed to allocate nodeid for API at 10.0.42.2. Returned error: 'No free node id found for mysqld(API).'
WARNING  -- Failed to allocate nodeid for API at 127.0.0.1. Returned error: 'No free node id found for mysqld(API).'

showndb_mgm输出来看:

Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @127.0.0.1  (mysql-5.6.14 ndb-7.3.3, starting, Nodegroup: 0)
id=3    @10.0.42.2  (mysql-5.6.14 ndb-7.3.3, starting, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @127.0.1.1  (mysql-5.6.14 ndb-7.3.3)

[mysqld(API)]   2 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)

以下my.cnf——没有什么特别有趣的:

[mysqld]

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

language=english

ndbcluster

[mysql_cluster]
ndb-connectstring=localhost

唯一与 API 相关的配置config.ini是这样的:

[mysqld]
[mysqld]

没有这个[mysqld default]部分。我尝试过设置主机名。

我已尝试ndbd --reloadndbd --initial,并进行适当的重启。

更新

根据 的输出,似乎两个数据节点都没有监听端口 2202。netstat -nl由于没有监听,它们无法相互连接,并且集群永远无法让 API 节点加入。什么可能阻止这种情况?

答案1

问题似乎是我混合使用了 localhost、LAN 和 Internet IP 地址。所有服务器都需要能够使用管理服务器解析的 IP 地址相互访问。您可以使用[tcp]它来覆盖此设置,但这太混乱了。

答案2

您的文件中有拼写错误。地址 127.0.1.1 不是环回地址或本地主机地址。它应该是 127.0.0.1。

相关内容