16.5.1. MySQL Server Process Usage for MySQL Cluster
mysqld is the traditional MySQL server
process. To be used with MySQL Cluster,
mysqld needs to be built with support for the
NDB Cluster
storage engine, as it is in the
precompiled binaries available from
https://dev.mysql.com/downloads/. If you build MySQL from
source, you must invoke configure with the
--with-ndbcluster
option to enable NDB
Cluster
storage engine support.
If the mysqld binary has been built with
Cluster support, the NDB Cluster
storage
engine is still disabled by default. You can use either of two
possible options to enable this engine:
An easy way to verify that your server is running with the
NDB Cluster
storage engine enabled is to
issue the SHOW ENGINES
statement in the MySQL
Monitor (mysql). You should see the value
YES
as the Support
value
in the row for NDBCLUSTER
. If you see
NO
in this row or if there is no such row
displayed in the output, you are not running an
NDB
-enabled version of MySQL. If you see
DISABLED
in this row, you need to enable it
in either one of the two ways just described.
To read cluster configuration data, the MySQL server requires at
a minimum three pieces of information:
The MySQL server's own cluster node ID
The hostname or IP address for the management server (MGM
node)
The number of the TCP/IP port on which it can connect to the
management server
Node IDs can be allocated dynamically, so it is not strictly
necessary to specify them explicitly.
The mysqld parameter
ndb-connectstring
is used to specify the
connectstring either on the command line when starting
mysqld or in my.cnf
. The
connectstring contains the hostname or IP address where the
management server can be found, as well as the TCP/IP port it
uses.
In the following example, ndb_mgmd.mysql.com
is the host where the management server resides, and the
management server listens for cluster messages on port 1186:
shell> mysqld --ndb-connectstring=ndb_mgmd.mysql.com:1186
See Section 16.4.4.2, “The MySQL Cluster connectstring
”, for more
information on connectstrings.
Given this information, the MySQL server will be a full
participant in the cluster. (We sometimes refer to a
mysqld process running in this manner as an
SQL node.) It will be fully aware of all cluster data nodes as
well as their status, and will establish connections to all data
nodes. In this case, it is able to use any data node as a
transaction coordinator and to read and update node data.