我正在运行一个非常小的MySQL集群,configuration文件非常简单。 数据节点连接正常,但pipe理服务器拒绝接受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
config.ini唯一与API相关的configuration是这样的:
[mysqld] [mysqld]
没有[mysqld default]部分。 我试过设置主机名。
我已经尝试了ndbd --reload和ndbd --initial ,并重新启动。
它看起来好像两个数据节点都不在基于netstat -nl的输出的端口2202上进行netstat -nl 。 由于既不在监听,也不能彼此连接,并且集群从不准备API节点join。 有什么可以阻止呢?
看起来问题是我混合本地主机,局域网和互联网IP地址。 所有服务器都需要能够使用pipe理服务器parsing的IP地址彼此访问。 你可以用[tcp]来覆盖这个,但是太杂乱了。
你的文件中有一个错字。 地址127.0.1.1对于回送地址或本地主机是错误的。 它应该是127.0.0.1。