Failed to allocate nodeid for API at <sql_node_ipaddr>. Returned error: 'No free node id found for mysqld(API).'

Failed to allocate nodeid for API at <sql_node_ipaddr>. Returned error: 'No free node id found for mysqld(API).'

OS 和 mysql 集群版本

服务器列表

两个数据节点(ndbd)正常,但是sql节点(mysql)无法连接到ndb_mgmd.The网络正常。 SElinux 和防火墙被禁用。

我的配置

mgmd 配置(/var/lib/mysql-cluster/config.ini)

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
ServerPort=2202

[ndb_mgmd]
HostName=192.168.1.103
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=192.168.1.101
NodeId=2
DataDir=/opt/mysql/data

[ndbd]
HostName=192.168.1.102
NodeId=3
DataDir=/opt/mysql/data

[mysqld]
HostName=192.168.1.104

mysql 配置(/etc/config.ini)

[mysqld]
user=mysql
ndbcluster
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

symbolic-links=0
default-storage-engine=NDBCLUSTER
ndb-connectstring=192.168.1.103

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql_cluster]
ndb-connectstring=192.168.1.103

错误日志

mgmd 日志

2017-11-27 20:28:35 [MgmtSrvr] WARNING  -- Failed to allocate nodeid for API at 192.168.1.104. Returned error: 'No free node id found for mysqld(API).'
2017-11-27 20:28:36 [MgmtSrvr] INFO     -- Alloc node id 4 failed, no new president yet

sql 节点日志(mysqld)

2017-11-28T03:18:43.565265Z 4 [Warning] NDB: Failed to acquire global schema lock, error: (4009)Cluster Failure
2017-11-28T03:18:43.566664Z 4 [Warning] NDB: Failed to acquire global schema lock, error: (4009)Cluster Failure

1) 您从错误的节点启动了管理服务器,它已启动 来自 192.168.1.104,但在配置中它说它应该在 192.168.1.103.

2) 您缺少第二个 MySQL 服务器的 mysqld 部分 192.168.1.105

一些建议: 1)为所有节点分配节点id 2) 同时添加一个 API 节点以启用 运行 一些 NDB 工具