Mysql
在兩個系統上設置 MySQL 集群
我正在嘗試設置 MySQL 集群。
我有以下設置
- 一個管理節點
- 兩個數據節點
- 另一台機器上還有兩個節點駐留
下面是 config.ini 文件:
[ndbd 預設] # 影響所有數據節點上 ndbd 程序的選項: NoOfReplicas=2 #副本數 DataMemory=80M #為數據儲存分配多少記憶體 IndexMemory=18M # 為索引儲存分配多少記憶體 # 對於 DataMemory 和 IndexMemory,我們使用了 # 預設值。由於“世界”數據庫佔用 # 只有大約 500KB,這應該綽綽有餘 # 這個範例集群設置。 DataDir=/var/lib/mysql-cluster [MYSQLD 預設值] [NDB_MGMD 預設] LogDestination=FILE:filename=my-cluster.log [tcp 預設] [ndb_mgmd] # 管理程序選項: hostname=XXX26 #MGM節點的主機名或IP地址 datadir=/var/lib/mysql-cluster # MGM 節點日誌文件目錄 # 儲存節點 [NDBD] hostname=XXX26 # storage-node-1的IP地址 DataDir= /var/lib/mysql-cluster [NDBD] HostName=XXX73 # storage-node-2的IP地址 DataDir= /var/lib/mysql-cluster [NDBD] hostname=XXX26 # storage-node-3的IP地址 DataDir= /var/lib/mysql-cluster [NDBD] HostName=XXX73 # storage-node-4的IP地址 DataDir= /var/lib/mysql-cluster # 為 mySQL API 伺服器(集群的客戶端)設置節點 ID [mysqld] # SQL 節點選項: hostname=XXX73 #主機名或IP地址 # (額外的mysqld連接可以是 # 為這個節點指定的各種 # 執行ndb_restore等目的)
以下是
my.cnf
兩個系統的文件:[mysqld] ndbcluster # 執行 NDB 儲存引擎 ndb-connectstring=XXX26 #管理伺服器的位置 [mysql_cluster] ndb-connectstring=XXX26 #管理伺服器的位置
當我嘗試啟動集群時,它給了我以下錯誤:
Could not determine which NodeID to use for this node. Specify it with --ndb-nodeid=<nodeid> on command line
如果集群設置完成,沒有數據複製,因為它再次給我另一個錯誤:
ERROR 1296 (HY000): Got error 4009 'Cluster Failure' from NDBCLUSTER
誰能幫我確定問題?
您的管理配置對我來說似乎很好。聽起來 ndb_mgmd 並沒有完全死掉,或者管理伺服器上 /var/lib/mysql-cluster 目錄中的內容有問題。
您可能還想確保 ndb_mgmd 沒有自動啟動,例如通過 /etc/init.d/ 中的一些啟動腳本。
為了嘗試解決這個問題,我會先從這些步驟開始。
由於您剛剛開始並且還沒有任何真實數據。
- 殺死任何剩餘的 ndb_mgmd 程序:
killall ndb_mgmd
如果 killall 沒有幫助,則重新啟動。- 完全刪除 /var/lib/mysql-cluster 中的所有內容:
rm -Rf /var/lib/mysql-cluster/*
- 再次啟動集群程序:
ndb_mgmd -f /etc/config.ini --initial
- 驗證 ndb_mgmd 是否正在使用 netstat 進行偵聽
$> 網路統計-tlpn
活動 Internet 連接(僅限伺服器) Proto Recv-Q Send-Q 本地地址 外部地址 狀態 PID/程序名稱
tcp 0 0 0.0.0.0:1186 0.0.0.0: LISTEN 3251/ndb_mgmd*
連接到管理節點
$> ndb_mgm ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.9.26 (mysql-5.1.61 ndb-7.1.22)
更新
這是 Oracle 的快速入門指南,所有節點、管理、mysql 和數據都在一台伺服器上執行。
http://downloads.mysql.com/tutorials/cluster/GetMySQLClusterRunning-LINUX.pdf