ndb_desc 的配置文件和參數
我正在嘗試
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
修改, 去掉and
my.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-work、mysql:ndb_desc、mysql:connection-string、grokbase,以及幾個小時的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).
以下是我為完成這項工作所做的更改:
- 在 mgmd config.ini 末尾添加空 api 節點:
[api]
- 從 mgmd 停止兩個 ndbd:
ndb_mgm -e "3 stop" | "4 stop"
- 停止兩個 mgmd:
ndb_mgm -e "1 stop" | "2 stop"
- 啟動 mgmd 1:
ndb_mgmd --initial --reload --config-file=/var/lib/mysql-cluster/config.ini
- 開始mgmd 2:
ndb_mgmd --initial --config-file=/var/lib/mysql-cluster/config.ini
- 手動啟動ndbd:ssh到機器並執行
ndbd
- 等到所有節點連接
- 確保 mysql 節點上的 my.cnf 具有:
[mysql_cluster] ndb-connectstring=192.168.1.1,192.168.1.2
,或者可以-c
稍後添加 ndb_desc 參數- 在 mysql 節點上執行 ndb_desc:
ndb_desc -p -d db_name -t tb_name
添加空api節點後重要的缺失部分是重新啟動數據節點
連結到源:未找到空閒節點 ID