VMware:(版本10.0.01)
操作系統:Windows Server 2008 R2 Enterprise
VM1:192.168.220.103 管理節點(MGM),數據節點(NDBD1),SQL節點(SQL1)
VM2:192.168.220.104 數據節點(NDBD2),SQL節點(SQL2)
MySQL Cluster版本:7.3.7 (MSI Installer) 下載地址:http://dev.mysql.com/downloads/cluster/
測試工具:Navicate for MySQL
簡介:
MySQL Cluster 是一種技術,該技術允許在無共享的系統中部署“內存中”數據庫的 Cluster 。通過無共享體系結構,系統能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由於每個組件有自己的內存和磁盤,不存在單點故障。
MySQL Cluster 由一組計算機構成,每台計算機上均運行著多種進程,包括MySQL服務器,NDB Cluster 的數據節點,管理服務器,以及(可能)專門的數據訪問程序
特點: http://www.mysql.com/products/cluster/features.html
三種節點:
管理節點:用於管理集群共它節點; 守護進程ndb_mgmd
數據節點:用於保存集群的數據; 守護進程ndbd
SQL節點:用於連接數據節點;守護進程mysqld
詳情請參考:參考手冊中MySQL Cluster章節
選擇typical安裝,安裝目錄均為:C:\Program Files\MySQL\MySQL Cluster 7.3
新建文件夾的路徑分別為:C:\Program Files\MySQL\MySQL Server 5.6
C:\Program Files\MySQL\MySQL Server 5.6\mysql-cluster
[ndbd default] NoOfReplicas=2 [ndb_mgmd] NodeId=1 HostName=192.168.220.103 DataDir=C:\Program Files\MySQL\MySQL Cluster 7.3\data [ndbd] NodeId=21 HostName=192.168.220.103 DataDir=C:\Program Files\MySQL\MySQL Server 5.6\mysql-cluster [ndbd] NodeId=22 HostName=192.168.220.104 DataDir=C:\Program Files\MySQL\MySQL Server 5.6\mysql-cluster [mysqld] NodeId=11 HostName=192.168.220.103 [mysqld] NodeId=12 HostName=192.168.220.104
[mysqld] character_set_server=utf8 basedir="C:\Program Files\MySQL\MySQL Cluster 7.3" datadir="C:\Program Files\MySQL\MySQL Cluster 7.3\data" sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ndbcluster ndb-connectstring=192.168.220.103 explicit_defaults_for_timestamp=true [mysql_cluster] ndb-connectstring=192.168.220.103
計算機右鍵屬性 (或者 控制面板\系統和安全\系統)--->高級系統配置--->"高級"選擇卡--->環境變量--->系統變量中找到Path--->編輯--->加上C:\Program Files\MySQL\MySQL Cluster 7.3\bin
注意:多個路徑用分號分隔
[NDBD]:定義了集群的數據節點
[MYSQLD]:定義了集群的MySQL服務器節點
[MGM]或[NDB_MGMD]:定義了集群的管理服務器節點
[NDB_MGMD]Id:節點唯一的標識
[NDBD]NoOfReplicas:全局參數僅能在[NDBD DEFAULT]中設置,它定義了集群中每個表保存的副本數。該參數還指定了節點組的大小。節點組指的是保存相同信息的節點集合
[NDBD]DataDir:該參數指定了存放跟蹤文件、日志文件、 pid文件以及錯誤日志的目錄
[MYSQLD]basedir:使用指定目錄作為根目錄
[MYSQLD]datadir:使用指定目錄讀取數據庫文件
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin" db_mgmd.exe --config-file="C:\Program Files\MySQL\MySQL Cluster 7.3\config.ini" --configdir="C:\Program Files\MySQL\MySQL Cluster 7.3"
注意:warning信息不影響,兩台機器配置管理節點和數據節點在一台機器上的原因,並不會引起集群失敗
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin" ndbd.exe --initial
注意:--initial只有初次執行需要,以後執行ndbd.exe就可以(參考手冊裡的意思應該是當需要清理集群文件時才使用,所以這個參數應該要慎用或者提前備份)
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin" mysqld.exe --default-file="C:\Program Files\MySQL\MySQL Cluster 7.3\my.ini" mysqld --install net start mysql
注意:執行mysqld --install 你可以在計算機的服務器看到名為“MySQL”的服務,在執行net start mysql,在服務中可以看到MySQL服務為“啟動”狀態
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin" ndbd.exe
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin" mysqld.exe --default-file="C:\Program Files\MySQL\MySQL Cluster 7.3\my.ini" mysqld --install net start mysql
ndb_mgm.exe show
如上圖狀態,表示安裝成功!
發現192.168.220.104中也出現wilson_mysqlcluster_test
1.在VM2中CMD窗口執行如下命令停止MySQL服務
net stop msyql
2.在192.168.220.103中插ID為3的數據後,執行如下命令,再次啟動VM2中的MySQL服務,查看192.168.220.104中數據是否完整
net start mysql
測試結果如圖:得到完整數據
其它測試就不一一列舉了
配置前仔細看了MySQL參考文件MySQL Cluster章節
MySQL Cluster配置過程還是比較容易出錯,配置過程中大小錯誤遇到非常多(目錄、SQL節點not connected、MYSQL服務無法啟動、數據無法同步等等),根據CMD上錯誤和日志文件查找對應的解決方法
注意啟動順序會少遇到很多錯誤:管理節點--->數據節點--->SQL節點
生產環境建議用至少3台服務器去配置,需要修改一下config.ini文件,配置過程與兩台沒什麼差別
主要參考:
MySQL_5.5中文參考手冊
Windows 環境下配置 MySQL Cluster