Назад | Перейти на главную страницу

Невозможно выделить 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. Что могло этому помешать?

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

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