To support MySQL Cluster, you will need to update
my.cnf as shown in the following example.
You may also specify these parameters on the command line when
invoking the executables.
The options shown here should not be confused with those that
are used in
configuration files. Global configuration options are
discussed later in this section.
# my.cnf # example additions to my.cnf for MySQL Cluster # (valid in MySQL 5.1) # enable ndbcluster storage engine, and provide connection string for # management server host (default port is 1186) [mysqld] ndbcluster ndb-connectstring=ndb_mgmd.mysql.com # provide connection string for management server host (default port: 1186) [ndbd] connect-string=ndb_mgmd.mysql.com # provide connection string for management server host (default port: 1186) [ndb_mgm] connect-string=ndb_mgmd.mysql.com # provide location of cluster configuration file [ndb_mgmd] config-file=/etc/config.ini
(For more information on connection strings, see Section 126.96.36.199, “MySQL Cluster Connection Strings”.)
# my.cnf # example additions to my.cnf for MySQL Cluster # (will work on all versions) # enable ndbcluster storage engine, and provide connection string for management # server host to the default port 1186 [mysqld] ndbcluster ndb-connectstring=ndb_mgmd.mysql.com:1186
Once you have started a mysqld process with
ndb-connectstring parameters in the
[mysqld] in the
file as shown previously, you cannot execute any
CREATE TABLE or
ALTER TABLE statements without
having actually started the cluster. Otherwise, these
statements will fail with an error. This is by
You may also use a separate
section in the cluster
my.cnf file for
settings to be read and used by all executables:
# cluster-specific settings [mysql_cluster] ndb-connectstring=ndb_mgmd.mysql.com:1186
NDB variables that
can be set in the
my.cnf file, see
Section 188.8.131.52.2, “MySQL Cluster System Variables”.
The MySQL Cluster global configuration file is by convention
config.ini (but this is not
required). It is read by ndb_mgmd at startup
and can be placed in any location that can be read by it. The
location and name of the configuration are specified using
with ndb_mgmd on the command line. Beginning
with MySQL Cluster NDB 6.4.0, this option has no default value,
and is ignored if ndb_mgmd uses the
The global configuration file for MySQL Cluster uses INI format,
which consists of sections preceded by section headings
(surrounded by square brackets), followed by the appropriate
parameter names and values. One deviation from the standard INI
format is that the parameter name and value can be separated by
a colon (“
:”) as well as the
equal sign (“
=”); however, the
equal sign is preferred. Another deviation is that sections are
not uniquely identified by section name. Instead, unique
sections (such as two different nodes of the same type) are
identified by a unique ID specified as a parameter within the
Default values are defined for most parameters, and can also be
config.ini. (Prior to MySQL
Cluster NDB 6.3.25 and MySQL Cluster NDB 7.0.6, there was no
default value for
always had to be specified explicitly in the
default] section. Beginning with versions just stated,
the default value is 2, which is the recommended setting in most
common usage scenarios.) To create a default value section,
simply add the word
default to the section
name. For example, an
[ndbd] section contains
parameters that apply to a particular data node, whereas an
[ndbd default] section contains parameters
that apply to all data nodes. Suppose that all data nodes should
use the same data memory size. To configure them all, create an
[ndbd default] section that contains a
DataMemory line to
specify the data memory size.
The global configuration file must define the computers and nodes involved in the cluster and on which computers these nodes are located. An example of a simple configuration file for a cluster consisting of one management server, two data nodes and two SQL nodes is shown here:
# file "config.ini" - 2 data nodes and 2 SQL nodes # This file is placed in the startup directory of ndb_mgmd (the # management server) # The first SQL node can be started from any host. The second # can be started only on the host mysqld_5.mysql.com [ndbd default] NoOfReplicas= 2 DataDir= /var/lib/mysql-cluster [ndb_mgmd] Hostname= ndb_mgmd.mysql.com DataDir= /var/lib/mysql-cluster [ndbd] HostName= ndbd_2.mysql.com [ndbd] HostName= ndbd_3.mysql.com [mysqld] [mysqld] HostName= mysqld_5.mysql.com
The preceding example is intended as a minimal starting configuration for purposes of familiarization with MySQL Cluster, and is almost certain not to be sufficient for production settings. See Section 184.108.40.206, “Recommended Starting Configurations for MySQL Cluster NDB 6.2 and Later”, which provides more complete example starting configurations for use with MySQL Cluster NDB 6.2 and newer versions of MySQL Cluster.
Each node has its own section in the
config.ini file. For example, this cluster
has two data nodes, so the preceding configuration file contains
[ndbd] sections defining these nodes.
Do not place comments on the same line as a section heading in
config.ini file; this causes the
management server not to start because it cannot parse the
configuration file in such cases.
There are six different sections that you can use in the
config.ini configuration file, as described
in the following list:
[computer]: Defines cluster hosts. This is not required to configure a viable MySQL Cluster, but be may used as a convenience when setting up a large cluster. See Section 220.127.116.11, “Defining Computers in a MySQL Cluster”, for more information.
[ndbd]: Defines a cluster data node (ndbd process). See Section 18.104.22.168, “Defining MySQL Cluster Data Nodes”, for details.
[mysqld]: Defines the cluster's MySQL server nodes (also called SQL or API nodes). For a discussion of SQL node configuration, see Section 22.214.171.124, “Defining SQL and Other API Nodes in a MySQL Cluster”.
[ndb_mgmd]: Defines a cluster management server (MGM) node. For information concerning the configuration of management nodes, see Section 126.96.36.199, “Defining a MySQL Cluster Management Server”.
[tcp]: Defines a TCP/IP connection between cluster nodes, with TCP/IP being the default connection protocol. Normally,
[tcp default]sections are not required to set up a MySQL Cluster, as the cluster handles this automatically; however, it may be necessary in some situations to override the defaults provided by the cluster. See Section 188.8.131.52, “MySQL Cluster TCP/IP Connections”, for information about available TCP/IP configuration parameters and how to use them. (You may also find Section 184.108.40.206, “MySQL Cluster TCP/IP Connections Using Direct Connections” to be of interest in some cases.)
[shm]: Defines shared-memory connections between nodes. In MySQL 5.1, it is enabled by default, but should still be considered experimental. For a discussion of SHM interconnects, see Section 220.127.116.11, “MySQL Cluster Shared-Memory Connections”.
[sci]:Defines Scalable Coherent Interface connections between cluster data nodes. Such connections require software which, while freely available, is not part of the MySQL Cluster distribution, as well as specialized hardware. See Section 18.104.22.168, “SCI Transport Connections in MySQL Cluster” for detailed information about SCI interconnects.
You can define
default values for each
section. All Cluster parameter names are case-insensitive, which
differs from parameters specified in