Mysql-5.7

ndb_desc 的配置文件和參數

  • December 12, 2018

我正在嘗試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
--- ...

情況:有 2x mgmd、2x data-node 和 2x 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

修改, 去掉andmy.cnf這兩行,呼叫 ndb_desc 後的錯誤響應如下:server-id``log-bin

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-workmysql:ndb_descmysql:connection-stringgrokbase,以及幾個小時的Google搜尋。

update1:​​將 mgmd 上的 config.ini 更改為 emtpy mysqld 部分,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.

update3:更改了 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).

以下是我為完成這項工作所做的更改:

  1. 在 mgmd config.ini 末尾添加空 api 節點:[api]
  2. 從 mgmd 停止兩個 ndbd:ndb_mgm -e "3 stop" | "4 stop"
  3. 停止兩個 mgmd:ndb_mgm -e "1 stop" | "2 stop"
  4. 啟動 mgmd 1:ndb_mgmd --initial --reload --config-file=/var/lib/mysql-cluster/config.ini
  5. 開始mgmd 2:ndb_mgmd --initial --config-file=/var/lib/mysql-cluster/config.ini
  6. 手動啟動ndbd:ssh到機器並執行ndbd
  7. 等到所有節點連接
  8. 確保 mysql 節點上的 my.cnf 具有: [mysql_cluster] ndb-connectstring=192.168.1.1,192.168.1.2,或者可以-c稍後添加 ndb_desc 參數
  9. 在 mysql 節點上執行 ndb_desc:ndb_desc -p -d db_name -t tb_name

添加空api節點後重要的缺失部分是重新啟動數據節點

連結到源:未找到空閒節點 ID

引用自:https://dba.stackexchange.com/questions/224634