我正在尝试ndb_desc
从 API 客户端执行。配置和参数如下:
mysqld中的my.cnf:
[mysql_cluster]
ndb-connectstring=192.168.1.1,192.168.1.2
server-id=5
log-bin=mysql-bin
mgmd 中的 config.ini:(部分)
-- ...
[mysqld]
hostname=192.168.1.5
--- ...
情况:有 2 个 mgmd、2 个数据节点和 2 个 mysqld。
尝试调用 ndb_desc 的参数:# ndb_desc -c 192.168.1.1 --ndb-nodeid=7 -d db_name -t tb_name
以上响应错误:ndb_desc: [ERROR] unknown variable 'server-id=5
在更改my.cnf
时,删除这两行server-id
and log-bin
,然后调用 ndb_desc 后的错误响应如下:
Unable to connect to management server.
NDBT_ProgramExit: 1 - Failed
没有防火墙,ping 到管理运行正常。
所以问题是:如何执行 ndb_desc(使用正确的参数)?设置节点 ID 的正确 my.cnf/config.ini 是什么?
在发布之前我尝试检查了一些链接: mysql-cluster-work-well-but-ndb-desc-doesnt-work、mysql:ndb_desc、mysql:connection-string、grokbase,以及几个小时的谷歌搜索。
update1:为 emtpy mysqld 部分更改了 mgmd 上的 config.ini,ndb_mgm -e show
输出:
[mysqld(API)] 3 node(s)
id=5 @192.168.1.5 (mysql-5.7.23 ndb-7.6.7)
id=6 @192.168.1.6 (mysql-5.7.23 ndb-7.6.7)
id=7 (not connected, accepting connect from any host)
ndb_desc 仍然有相同的响应:Unable to connect to management server.
update2:从 mgmd 节点,看到这个日志:WARNING -- Failed to allocate nodeid for API at 192.168.1.5. Returned error: 'Id 7 already allocated by another node.
更新 3:更改了 config.ini,添加了[api] nodeid=7 host=192.168.1.5
. 日志还是一样:WARNING -- Failed to allocate nodeid for API at 192.168.11.51. Returned error: 'No free node id found for mysqld(API).