Infrastructure Setup
Three virtual machines running Windows 10 x64 form the cluster:
- Management node: 192.168.37.128
- Data node + SQL node: 192.168.37.129
- Data node + SQL node: 192.168.37.130
Each machine running both data and SQL nodes consolidates roles for smaller deployments.
Downloading MySQL Cluster
Obtain the distribution from the official MySQL downloads page (mysql-cluster-gpl-7.5.6-winx64.zip). Alternative mirror sources are available if the primary download is slow.
Management Node Configuration
On the management server (192.168.37.128), establish the following directory structure under C:\mysql\bin:
C:\mysql\bin\
├── config.ini
├── my.ini
├── ndb_mgm.exe
├── ndb_mgmd.exe
├── cluster-logs\
└── mysql-cluster\
my.ini:
[mysql_cluster]
config-file=C:/mysql/bin/config.ini
config.ini:
[NDBD DEFAULT]
NoOfReplicas=2
DataDir=D:/mysqlCluster/datanode/mysql/bin/cluster-data
DataMemory=80M
IndexMemory=18M
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
[NDB_MGMD]
Nodeid=1
HostName=192.168.37.128
DataDir=C:/mysql/cluster-logs
[NDBD]
Nodeid=2
HostName=192.168.37.130
[NDBD]
Nodeid=3
HostName=192.168.37.129
[MYSQLD]
Nodeid=4
HostName=192.168.37.130
[MYSQLD]
Nodeid=5
HostName=192.168.37.129
The NoOfReplicas=2 setting means each data fragment has two copies distributed acrosss nodes, ensuring fault tolerance if one node fails.
Copy ndb_mgm.exe and ndb_mgmd.exe from the downloaded package's bin directory.
Data Node Configuration
On both data node servers (192.168.37.129 and 192.168.37.130), create the directory D:\mysqlCluster\datanode\mysql\bin\cluster-data.
my.ini for data nodes:
[mysql_cluster]
ndb-connectstring=192.168.37.128
Copy ndbd.exe from the downloaded package's bin directory to the data node bin folder.
SQL Node Configuraton
On both SQL servers, create D:\mysqlCluster\sqlnode\ and extract the MySQL Cluster package there. Rename the extracted folder to "mysql". Create a data subdirectory.
my.ini for SQL nodes:
[mysqld]
ndbcluster
ndb-connectstring=192.168.37.128
Service Registration
Run the following commands with administrator privileges. First, initialize the data directory if it doesn't exist (required for versions 5.7+):
mysqld --initialize-insecure
mysqld --install mysql
Use --initialize-insecure for root accounts without passwords, or --initialize for auto-generated random passwords.
Copy the entire D:\mysqlCluster directory to 192.168.37.130 and repeat the service registration step.
Startup Procedure
Launch nodes in this sequence: management → data → SQL. Each category must stabilize before proceeding.
Management node startup:
cd C:\mysql\bin
ndb_mgmd -f C:\mysql\bin\config.ini --configdir=C:\mysql\mysql-cluster
Include --reload to force configuraton reload.
Data node startup (on both data servers):
cd D:\mysqlCluster\datanode\mysql\bin
ndbd
SQL node startup: Start the MySQL Windows service normally. Once management and data nodes are operational, SQL nodes connect automatically.
Verification
Connect to the cluster from either SQL node:
cd D:\mysqlCluster\sqlnode\mysql\bin
mysql -u root
Execute the following test sequence:
CREATE DATABASE cluster_test;
USE cluster_test;
CREATE TABLE regions (
id INT AUTO_INCREMENT PRIMARY KEY,
region_code VARCHAR(20) NOT NULL,
region_name VARCHAR(50) NOT NULL
) ENGINE=ndbcluster;
INSERT INTO regions (region_code, region_name) VALUES ('NA', 'North America');
Query the table from the other SQL node to confirm cluster-wide replication:
SELECT * FROM regions;
Successful cross-node query results confirm proper cluster operation.