Spec-Zone .ru
спецификации, руководства, описания, API
|
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 config.ini
global 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.6)# enable ndbcluster storage engine, and provide connectstring for# management server host (default port is 1186)[mysqld]ndbclusterndb-connectstring=ndb_mgmd.mysql.com# provide connectstring for management server host (default port: 1186)[ndbd]connect-string=ndb_mgmd.mysql.com# provide connectstring 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 connectstrings, see Section 17.3.2.3, "The MySQL Cluster Connectstring".)
# my.cnf# example additions to my.cnf for MySQL Cluster# (will work on all versions)# enable ndbcluster storage engine, and provide connectstring for management# server host to the default port 1186[mysqld]ndbclusterndb-connectstring=ndb_mgmd.mysql.com:1186
Once you have started a mysqld
process with the NDBCLUSTER
and ndb-connectstring
parameters
in the [mysqld]
in the my.cnf
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 design.
You may also use a separate [mysql_cluster]
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
For additional NDB
variables that can be set in the my.cnf
file,
see Section 17.3.4.3, "MySQL Cluster System Variables".
The MySQL Cluster global configuration file is by convention named config.ini
(but
this is not required). If needed, 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 --config-file=
with ndb_mgmd
on the command line. This option has no default value, and is ignored if ndb_mgmd uses the configuration cache. path_name
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 section.
Default values are defined for most parameters, and can also be specified in config.ini
. 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.
In some older releases of MySQL Cluster, there was no default value for NoOfReplicas
, which always had to be specified explicitly in the [ndbd default]
section. Although this parameter now has a default value of 2,
which is the recommended setting in most common usage scenarios, it is still recommended practice to set
this parameter explicitly.
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 MySQL servers 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 MySQL Server can be started from any host. The second# can be started only on the host mysqld_5.mysql.com[ndbd default]NoOfReplicas= 2DataDir= /var/lib/mysql-cluster[ndb_mgmd]Hostname= ndb_mgmd.mysql.comDataDir= /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 17.3.2.2, "Recommended Starting Configuration for MySQL Cluster", which provides a more complete example starting configuration.
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 two [ndbd]
sections defining these nodes.
Do not place comments on the same line as a section heading in the config.ini
file; this causes the management server not to start because it cannot parse the configuration file in such
cases.
config.ini
File
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 17.3.2.4, "Defining Computers in
a MySQL Cluster", for more information.
[ndbd]
: Defines a cluster data node (ndbd process). See Section
17.3.2.6, "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
17.3.2.7, "Defining SQL and Other API Nodes in a MySQL Cluster".
[mgm]
or [ndb_mgmd]
:
Defines a cluster management server (MGM) node. For information concerning the configuration of MGM
nodes, see Section 17.3.2.5, "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]
or [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
17.3.2.8, "MySQL Cluster TCP/IP Connections", for information about available TCP/IP
configuration parameters and how to use them. (You may also find Section
17.3.2.9, "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.6, it is enabled by default, but should still be considered experimental. For a discussion of
SHM interconnects, see Section 17.3.2.10,
"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 17.3.2.11, "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 my.cnf
or my.ini
files.