The [mysqld] and [api]
        sections in the config.ini file define the
        behavior of the MySQL servers (SQL nodes) and other applications
        (API nodes) used to access cluster data. None of the parameters
        shown is required. If no computer or host name is provided, any
        host can use this SQL or API node.
      
        Generally speaking, a [mysqld] section is
        used to indicate a MySQL server providing an SQL interface to
        the cluster, and an [api] section is used for
        applications other than mysqld processes
        accessing cluster data, but the two designations are actually
        synonomous; you can, for instance, list parameters for a MySQL
        server acting as an SQL node in an [api]
        section.
      
For a discussion of MySQL server options for MySQL Cluster, see Section 3.4.2, “mysqld Command Options for MySQL Cluster”; for information about MySQL server system variables relating to MySQL Cluster, see Section 3.4.3, “MySQL Cluster System Variables”.
| Restart Type | node | |
| Permitted Values | ||
| Type | numeric | 
|
| Default |  | 
|
| Range | 1-63 | 
|
            The Id is an integer value used to
            identify the node in all cluster internal messages. Prior to
            MySQL Cluster NDB 6.1.1, the permitted range of values for
            this parameter was 1 to 63 inclusive. Beginning with MySQL
            Cluster NDB 6.1.1, the permitted range is 1 to 255
            inclusive. This value must be unique for each node in the
            cluster, regardless of the type of node.
          
Data node IDs must be less than 49, regardless of the MySQL Cluster version used. If you plan to deploy a large number of data nodes, it is a good idea to limit the node IDs for API nodes (and management nodes) to values greater than 48.
            This parameter can also be written as
            NodeId, although the short form is
            sufficient (and preferred for this reason).
          
| Restart Type | system | |
| Permitted Values | ||
| Type | string | 
|
| Default |  | 
|
| Range | - | 
|
            This refers to the Id set for one of the
            computers (hosts) defined in a [computer]
            section of the configuration file.
          
| Restart Type | system | |
| Permitted Values | ||
| Type | string | 
|
| Default |  | 
|
| Range | - | 
|
            Specifying this parameter defines the hostname of the
            computer on which the SQL node (API node) is to reside. To
            specify a hostname, either this parameter or
            ExecuteOnComputer is required.
          
            If no HostName or
            ExecuteOnComputer is specified in a given
            [mysql] or [api]
            section of the config.ini file, then an
            SQL or API node may connect using the corresponding
            “slot” from any host which can establish a
            network connection to the management server host machine.
            This differs from the default behavior for data
            nodes, where localhost is assumed for
            HostName unless otherwise
            specified.
          
| Restart Type | node | |
| Permitted Values | ||
| Type | numeric | 
|
| Default | 0 | 
|
| Range | 0-2 | 
|
            This parameter defines which nodes can act as arbitrators.
            Both MGM nodes and SQL nodes can be arbitrators. A value of
            0 means that the given node is never used as an arbitrator,
            a value of 1 gives the node high priority as an arbitrator,
            and a value of 2 gives it low priority. A normal
            configuration uses the management server as arbitrator,
            setting its ArbitrationRank to 1 (the
            default for management nodes) and those for all SQL nodes to
            0 (the default for SQL nodes).
          
            Beginning with MySQL 5.1.16 and MySQL Cluster NDB 6.1.3, it
            is possible to disable arbitration completely by setting
            ArbitrationRank to 0 on all management
            and SQL nodes. In MySQL Cluster NDB 7.0.7 and later
            releases, you can also control arbitration by overriding
            this parameter; to do this, set the
            Arbitration
            parameter in the [ndbd default] section
            of the config.ini global configuration
            file.
          
| Restart Type | node | |
| Permitted Values | ||
| Type | numeric | 
|
| Default | 0 | 
|
| Range | 0-4G | 
|
Setting this parameter to any other value than 0 (the default) means that responses by the arbitrator to arbitration requests will be delayed by the stated number of milliseconds. It is usually not necessary to change this value.
| Restart Type | node | |
| Permitted Values | ||
| Type | numeric | 
|
| Default | 32K | 
|
| Range | 1024-1M | 
|
            For queries that are translated into full table scans or
            range scans on indexes, it is important for best performance
            to fetch records in properly sized batches. It is possible
            to set the proper size both in terms of number of records
            (BatchSize) and in terms of bytes
            (BatchByteSize). The actual batch size is
            limited by both parameters.
          
The speed at which queries are performed can vary by more than 40% depending upon how this parameter is set. In future releases, MySQL Server will make educated guesses on how to set parameters relating to batch size, based on the query type.
This parameter is measured in bytes and by default is equal to 32KB.
| Restart Type | node | |
| Permitted Values | ||
| Type | numeric | 
|
| Default | 64 | 
|
| Range | 1-992 | 
|
This parameter is measured in number of records and is by default set to 64. The maximum size is 992.
Beginning with MySQL Cluster NDB 6.3.32, MySQL Cluster NDB 7.0.13, and MySQL Cluster NDB 7.1.2, it is possible to use this parameter to set the scheduling policy and priority of heartbeat threads for management and API nodes.
The syntax for setting this parameter is shown here:
HeartbeatThreadPriority =policy[,priority]policy: {FIFO | RR}
            When setting this parameter, you must specify a policy. This
            is one of FIFO (first in, first in) or
            RR (round robin). This followed
            optionally by the priority (an integer).
          
| Restart Type | node | |
| Permitted Values | ||
| Type | numeric | 
|
| Default | 256K | 
|
| Range | 32K-16M | 
|
The batch size is the size of each batch sent from each data node. Most scans are performed in parallel to protect the MySQL Server from receiving too much data from many nodes in parallel; this parameter sets a limit to the total batch size over all nodes.
The default value of this parameter is set to 256KB. Its maximum size is 16MB.
| Version Introduced | 5.1.30-ndb-6.4.0 | |
| Restart Type | node | |
| Permitted Values | ||
| Type | numeric | 
|
| Default | 256K | 
|
| Range | 0-4G | 
|
This parameter is available beginning with MySQL Cluster NDB 6.4.0. It is used to determine the total amount of memory to allocate on this node for shared send buffer memory among all configured transporters.
            If this parameter is set, its minimum allowed value is 256K;
            the maxmimum is 4294967039. For more detailed information
            about the behavior and use of
            TotalSendBufferMemory and configuring
            send buffer memory parameters in MySQL Cluster NDB 6.4.0 and
            later, see
            Section 3.2.13, “Configuring MySQL Cluster Send Buffer Parameters”.
          
| Version Introduced | 5.1.35-ndb-7.0.7 | |
| Restart Type | node | |
| Permitted Values | ||
| Type | boolean | 
|
| Default | false | 
|
| Range | false-true | 
|
            This parameter is available beginning with MySQL Cluster NDB
            6.3.26 and MySQL Cluster NDB 7.0.7. By default, its value is
            false, which forces disconnected API
            nodes (including MySQL Servers acting as SQL nodes) the use
            a new connection to the cluster rather than attempting to
            re-use an existing one, which can cause problems when using
            dynamically-allocated node IDs. (Bug#45921)
          
              This parameter can be overridden using the NDB API. For
              more information, see
              Ndb_cluster_connection::set_auto_reconnect(),
              and
              Ndb_cluster_connection::get_auto_reconnect().
            
        You can obtain some information from a MySQL server running as a
        Cluster SQL node using SHOW
        STATUS in the mysql client, as
        shown here:
      
mysql> SHOW STATUS LIKE 'ndb%';
+-----------------------------+---------------+
| Variable_name               | Value         |
+-----------------------------+---------------+
| Ndb_cluster_node_id         | 5             |
| Ndb_config_from_host        | 192.168.0.112 |
| Ndb_config_from_port        | 1186          |
| Ndb_number_of_storage_nodes | 4             |
+-----------------------------+---------------+
4 rows in set (0.02 sec)
For information about these Cluster system status variables, see Server Status Variables.
          To add new SQL or API nodes to the configuration of a running
          MySQL Cluster, it is necessary to perform a rolling restart of
          all cluster nodes after adding new [mysqld]
          or [api] sections to the
          config.ini file (or files, if you are
          using more than one management server). This must be done
          before the new SQL or API nodes can connect to the cluster.
        
It is not necessary to perform any restart of the cluster if new SQL or API nodes can employ previously unused API slots in the cluster configuration to connect to the cluster.
