Не удается выделить nodeid для API

Я использую довольно минимальный кластер 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).'

show от ndb_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 --reload а также ndbd --initialс соответствующими перезагрузками.

Обновить

Похоже, что ни один узел данных не прослушивает порт 2202 на основе выходных данных netstat -nl, Поскольку ни один из них не прослушивает, они не могут соединиться друг с другом, и кластер никогда не готов к присоединению узлов API. Что может помешать этому?

2 ответа

Похоже, проблема заключалась в том, что я смешивал IP-адреса локального хоста, локальной сети и Интернета. Все серверы должны иметь возможность связываться друг с другом с помощью IP-адресов, которые разрешает сервер управления. Ты можешь использовать [tcp] переопределить это, но это слишком грязно.

У вас есть опечатка в вашем файле. Адрес 127.0.1.1 не подходит для петлевого адреса или локального хоста. Это должно быть 127.0.0.1.

Другие вопросы по тегам