Once the MySQL Cluster executables and needed configuration files are in place, performing an initial start of the cluster is simply a matter of starting the MySQL Cluster executables for all nodes in the cluster. Each cluster node process must be started separately, and on the host computer where it resides. The management node should be started first, followed by the data nodes, and then finally by any SQL nodes.
On the management node host, issue the following command from the command line to start the management node process:
ndb_mgmd2010-06-23 07:53:34 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-5.1.77-ndb-7.1.37 2010-06-23 07:53:34 [MgmtSrvr] INFO -- Reading cluster configuration from 'config.ini'
The management node process continues to print logging output to the console. This is normal, because the management node is not running as a Windows service. (If you have used MySQL Cluster on a Unix-like platform such as Linux, you may notice that the management node's default behavior in this regard on Windows is effectively the opposite of its behavior on Unix systems, where it runs by default as a Unix daemon process. This behavior is also true of MySQL Cluster data node processes running on Windows.) For this reason, do not close the window in which ndb_mgmd.exe is running; doing so kills the management node process. (See Section 4.2.4, “Installing MySQL Cluster Processes as Windows Services”, where we show how to install and run MySQL Cluster processes as Windows services.)
-foption tells the management node where to find the global configuration file (
config.ini). The long form of this option is
A MySQL Cluster management node caches the configuration data that it reads from
config.ini; once it has created a configuration cache, it ignores the
config.inifile on subsequent starts unless forced to do otherwise. This means that, if the management node fails to start due to an error in this file, you must make the management node re-read
config.iniafter you have corrected any errors in it. You can do this by starting ndb_mgmd.exe with the
--initialoption on the command line. Either of these options works to refresh the configuration cache.
It is not necessary or advisable to use either of these options in the management node's
For additional information about options which can be used with ndb_mgmd, see Section 6.4, “ndb_mgmd — The MySQL Cluster Management Server Daemon”, as well as Section 6.26, “Options Common to MySQL Cluster Programs — Options Common to MySQL Cluster Programs”.
On each of the data node hosts, run the command shown here to start the data node processes:
ndbd2010-06-23 07:53:46 [ndbd] INFO -- Configuration fetched from 'localhost:1186', generation: 1
In each case, the first line of output from the data node process should resemble what is shown in the preceding example, and is followed by additional lines of logging output. As with the management node process, this is normal, because the data node is not running as a Windows service. For this reason, do not close the console window in which the data node process is running; doing so kills ndbd.exe. (For more information, see Section 4.2.4, “Installing MySQL Cluster Processes as Windows Services”.)
Do not start the SQL node yet; it cannot connect to the cluster until the data nodes have finished starting, which may take some time. Instead, in a new console window on the management node host, start the MySQL Cluster management client ndb_mgm.exe, which should be in
C:\mysql\binon the management node host. (Do not try to re-use the console window where ndb_mgmd.exe is running by typing CTRL+C, as this kills the management node.) The resulting output should look like this:
ndb_mgm-- NDB Cluster -- Management Client -- ndb_mgm>
When the prompt
ndb_mgm>appears, this indicates that the management client is ready to receive MySQL Cluster management commands. You can observe the status of the data nodes as they start by entering
ALL STATUSat the management client prompt. This command causes a running report of the data nodes's startup sequence, which should look something like this:
ALL STATUSConnected to Management Server at: localhost:1186 Node 2: starting (Last completed phase 3) (mysql-5.1.77-ndb-7.1.37) Node 3: starting (Last completed phase 3) (mysql-5.1.77-ndb-7.1.37) Node 2: starting (Last completed phase 4) (mysql-5.1.77-ndb-7.1.37) Node 3: starting (Last completed phase 4) (mysql-5.1.77-ndb-7.1.37) Node 2: Started (version 7.1.37) Node 3: Started (version 7.1.37) ndb_mgm>Note
Commands issued in the management client are not case-sensitive; we use uppercase as the canonical form of these commands, but you are not required to observe this convention when inputting them into the ndb_mgm client. For more information, see Section 7.2, “Commands in the MySQL Cluster Management Client”.
The output produced by
ALL STATUSis likely to vary from what is shown here, according to the speed at which the data nodes are able to start, the release version number of the MySQL Cluster software you are using, and other factors. What is significant is that, when you see that both data nodes have started, you are ready to start the SQL node.
You can leave ndb_mgm.exe running; it has no negative impact on the performance of the MySQL Cluster, and we use it in the next step to verify that the SQL node is connected to the cluster after you have started it.
On the computer designated as the SQL node host, open a console window and navigate to the directory where you unpacked the MySQL Cluster binaries (if you are following our example, this is
Start the SQL node by invoking mysqld.exe from the command line, as shown here:
--consoleoption causes logging information to be written to the console, which can be helpful in the event of problems. (Once you are satisfied that the SQL node is running in a satisfactory manner, you can stop it and restart it out without the
--consoleoption, so that logging is performed normally.)
SHOWConnected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @192.168.0.30 (Version: 5.1.77-ndb-7.1.37, Nodegroup: 0, *) id=3 @192.168.0.40 (Version: 5.1.77-ndb-7.1.37, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.0.10 (Version: 5.1.77-ndb-7.1.37) [mysqld(API)] 1 node(s) id=4 @192.168.0.20 (Version: 5.1.77-ndb-7.1.37)
You can also verify that the SQL node is connected to the MySQL Cluster in the mysql client (mysql.exe) using the
SHOW ENGINE NDB STATUSstatement.
You should now be ready to work with database objects and data
using MySQL Cluster's
NDBCLUSTER storage engine. See
Section 4.5, “MySQL Cluster Example with Tables and Data”, for more
information and examples.
Beginning with MySQL Cluster NDB 7.0.16 and MySQL Cluster NDB 7.1.5, you can install ndb_mgmd.exe, ndbd.exe, and ndbmtd.exe as Windows services. For information on how to do this, see Section 4.2.4, “Installing MySQL Cluster Processes as Windows Services”).