I'm trying to execute ndb_desc from API client. The config and parameters are as below:

my.cnf in mysqld:



config.ini in mgmd: (part of it)

-- ...
--- ...

Situation: there are 2x mgmd, 2x data-node, and 2x mysqld.

Parameters tried to call ndb_desc: # ndb_desc -c --ndb-nodeid=7 -d db_name -t tb_name

Above response with error: ndb_desc: [ERROR] unknown variable 'server-id=5

On changing my.cnf, removing these two lines of server-id and log-bin, then the error response after calling ndb_desc will be as follow:

Unable to connect to management server. 
NDBT_ProgramExit: 1 - Failed

There is no firewall, ping to the management is running fine.

So the question: how to exec ndb_desc (with correct parameters)? what is the correct my.cnf/config.ini for setting up the node-id?

Some links i have tried to check before posting this: mysql-cluster-work-well-but-ndb-desc-doesnt-work, mysql:ndb_desc, mysql:connection-string, grokbase, and several hours of googling around.

update1: changed the config.ini on mgmd for emtpy mysqld section, ndb_mgm -e show output:

[mysqld(API)]   3 node(s)
id=5    @  (mysql-5.7.23 ndb-7.6.7)
id=6    @  (mysql-5.7.23 ndb-7.6.7)
id=7 (not connected, accepting connect from any host)

ndb_desc still has the same response: Unable to connect to management server.

update2: from mgmd node, saw this log: WARNING -- Failed to allocate nodeid for API at Returned error: 'Id 7 already allocated by another node.

update3: changed config.ini, added [api] nodeid=7 host= log still the same: WARNING -- Failed to allocate nodeid for API at Returned error: 'No free node id found for mysqld(API).

1 Answer 1


Here are the changes i made to make this work:

  1. add empty api node at the end of mgmd config.ini: [api]
  2. stop both of ndbd from mgmd: ndb_mgm -e "3 stop" | "4 stop"
  3. stop both of mgmd: ndb_mgm -e "1 stop" | "2 stop"
  4. start mgmd 1: ndb_mgmd --initial --reload --config-file=/var/lib/mysql-cluster/config.ini
  5. start mgmd 2: ndb_mgmd --initial --config-file=/var/lib/mysql-cluster/config.ini
  6. start ndbd manually: ssh to the machine and run ndbd
  7. wait until all node connected
  8. make sure my.cnf at mysql node is having: [mysql_cluster] ndb-connectstring=,, or can add -c on ndb_desc param later
  9. run ndb_desc at mysql node: ndb_desc -p -d db_name -t tb_name

the important missing part after adding empty api node is restarting the data node

link to source: No free node id found

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.