This chapter contains information about MySQL
Cluster, which is a high-availability, high-redundancy
version of MySQL adapted for the distributed computing environment.
Current releases of MySQL Cluster use versions 6 and 7 of the
NDB storage engine (also known as
NDBCLUSTER) to enable running several
computers with MySQL servers and other software in a cluster.
Beginning with MySQL 5.1.24, support for the
NDBCLUSTER storage engine was removed
from the standard MySQL server binaries built by MySQL. Instead,
users of MySQL Cluster binaries built by MySQL should upgrade to the
most recent binary release of MySQL Cluster NDB 7.0 or MySQL Cluster
7.1 for supported platforms—these include RPMs that should
work with most Linux distributions. MySQL Cluster users who build
from source should be aware that, also beginning with MySQL 5.1.24,
NDBCLUSTER sources in the standard
MySQL 5.1 tree are no longer maintained; these users should use the
sources provided for MySQL Cluster NDB 7.0 or later. (Locations
where the sources can be obtained are listed later in this section.)
MySQL Cluster NDB 6.1, 6.2, and 6.3 were formerly known as “MySQL Cluster Carrier Grade Edition”. Beginning with MySQL Cluster NDB 6.2.15 and MySQL Cluster NDB 6.3.14, this term is no longer applied to the MySQL Cluster software—which is now known simply as “MySQL Cluster”—but rather to a commercial licensing and support package. You can learn more about available options for commercial licensing of MySQL Cluster from http://mysql.com/products/database/cluster/features.html, on the MySQL web site.
This chapter contains information about MySQL Cluster in MySQL 5.1 mainline releases through MySQL 5.1.23, MySQL Cluster NDB 6.2 releases through 5.1.51-ndb-6.2.19, MySQL Cluster NDB 6.3 releases through 5.1.73-ndb-6.3.55, MySQL Cluster NDB 7.0 releases through 5.1.73-ndb-7.0.42 and MySQL Cluster NDB 7.1 releases through 5.1.73-ndb-7.1.36. Currently, the MySQL Cluster NDB 7.2 release series is Generally Available (GA), as is MySQL Cluster NDB 7.1. MySQL Cluster NDB 7.0 and MySQL Cluster NDB 6.3 are previous GA release series; although they are still supported, we recommend that new deployments use MySQL Cluster NDB 7.2. For information about MySQL Cluster NDB 7.2, see MySQL Cluster NDB 7.2, in the MySQL 5.5 Manual.
This chapter also contains historical information about MySQL Cluster NDB 6.1 and MySQL Cluster NDB 6,2, although these release series are no longer in active development, and no longer supported for new deployments. You should upgrade to a MySQL Cluster NDB 7.1 or later release series as soon as possible.
Release notes for the changes in each release of MySQL Cluster are located at MySQL Cluster 7.1 Release Notes.
Supported Platforms. MySQL Cluster is currently available and supported on a number of platforms. For exact levels of support available for on specific combinations of operating system versions, operating system distributions, and hardware platforms, please refer to http://www.mysql.com/support/supportedplatforms/cluster.html.
Availability. MySQL Cluster binary and source packages are available for supported platforms from http://dev.mysql.com/downloads/cluster/.
Binary releases and RPMs were not available for MySQL Cluster NDB 6.2 prior to MySQL Cluster NDB 6.2.15.
MySQL Cluster release numbers.
Starting with MySQL Cluster NDB 6.1 and MySQL Cluster NDB 6.2,
MySQL Cluster follows a somewhat different release pattern from
the mainline MySQL 5.1 Cluster series of releases. In this
Manual and other MySQL documentation, we
identify these and later MySQL Cluster releases employing a
version number that begins with “NDB”. This version
number is that of the
storage engine used in the release, and not of the MySQL server
version on which the MySQL Cluster release is based.
Version strings used in MySQL Cluster NDB 6.x and 7.x software. The version string displayed by MySQL Cluster NDB 6.x and 7.x software uses this format:
mysql_server_version represents the
version of the MySQL Server on which the MySQL Cluster release is
based. For all MySQL Cluster NDB 6.x and 7.x releases, this is
the version of the
NDB storage engine
used by this release of the MySQL Cluster software. You can see this
format used in the mysql client, as shown here:
mysqlWelcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.73-ndb-7.1.36 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
SELECT VERSION()\G*************************** 1. row *************************** VERSION(): 5.1.73-ndb-7.1.36 1 row in set (0.00 sec)
This version string is also displayed in the output of the
SHOW command in the ndb_mgm
SHOWConnected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=1 @10.0.10.6 (5.1.73-ndb-7.1.36, Nodegroup: 0, *) id=2 @10.0.10.8 (5.1.73-ndb-7.1.36, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=3 @10.0.10.2 (5.1.73-ndb-7.1.36) [mysqld(API)] 2 node(s) id=4 @10.0.10.10 (5.1.73-ndb-7.1.36) id=5 (not connected, accepting connect from any host)
The version string identifies the mainline MySQL version from which
the MySQL Cluster release was branched and the version of the
NDBCLUSTER storage engine used. For
example, the full version string for MySQL Cluster NDB 7.0.5 (the
first GA MySQL Cluster NDB 7.0 binary release) was
mysql-5.1.32-ndb-7.0.5. From this we can
determine the following:
Since the portion of the version string preceding
-ndb-” is the base MySQL Server
version, this means that MySQL Cluster NDB 7.0.5 derives from
the MySQL 5.1.32, and contains all feature enhancements and
bugfixes from MySQL 5.1 up to and including MySQL 5.1.32.
Since the portion of the version string following
-ndb-” represents the version
number of the
NDBCLUSTER) storage engine, MySQL
Cluster NDB 7.0.5 uses version 7.0.5 of the
NDBCLUSTER storage engine.
New MySQL Cluster releases are numbered according to updates in the
NDB storage engine, and do not necessarily
correspond in a linear fashion with mainline MySQL Server releases.
For example, MySQL Cluster NDB 7.0.5 (as previously noted) is based
on MySQL 5.1.32, and MySQL Cluster NDB 7.0.6 is based on MySQL
5.1.34 (version string:
Compatibility with standard MySQL 5.1 releases.
While many standard MySQL schemas and applications can work using
MySQL Cluster, it is also true that unmodified applications and
database schemas may be slightly incompatible or have suboptimal
performance when run using MySQL Cluster (see
Section 3.6, “Known Limitations of MySQL Cluster”). Most of these issues
can be overcome, but this also means that you are very unlikely to
be able to switch an existing application datastore—that
currently uses, for example,
InnoDB—to use the
NDB storage engine without allowing
for the possibility of changes in schemas, queries, and
applications. Moreover, from MySQL 5.1.24 onwards, the MySQL
Server and MySQL Cluster codebases diverge considerably (and
NDB storage engine support dropped
from subsequent MySQL Server releases), so that the standard
mysqld cannot function as a dropin replacement
for the version of mysqld that is supplied with
MySQL Cluster development source trees. MySQL Cluster development trees can also be accessed from https://github.com/mysql/mysql-server.
The MySQL Cluster development sources maintained at https://github.com/mysql/mysql-server are licensed under the GPL. For information about obtaining MySQL sources using Bazaar and building them yourself, see Installing MySQL Using a Development Source Tree.
Currently, MySQL Cluster NDB 7.0, MySQL Cluster NDB 7.1, and MySQL Cluster NDB 7.2 releases are all Generally Available (GA), although we recommend that new deployments use MySQL Cluster NDB 7.2. MySQL Cluster NDB 6.1, MySQL Cluster NDB 6.2, and MySQL Cluster NDB 6.3, are no longer in active development. For an overview of major features added in MySQL Cluster NDB 6.x and 7.x releases, see Section 3.4, “MySQL Cluster Development History”. For an overview of major features added in MySQL Cluster NDB 7.2, see MySQL Cluster Development History.
This chapter represents a work in progress, and its contents are subject to revision as MySQL Cluster continues to evolve. Additional information regarding MySQL Cluster can be found on the MySQL Web site at http://www.mysql.com/products/cluster/.
Additional Resources. More information about MySQL Cluster can be found in the following places:
For answers to some commonly asked questions about MySQL Cluster, see Appendix B, MySQL 5.1 FAQ: MySQL Cluster.
The MySQL Cluster mailing list: http://lists.mysql.com/cluster.
The MySQL Cluster Forum: http://forums.mysql.com/list.php?25.
Many MySQL Cluster users and developers blog about their experiences with MySQL Cluster, and make feeds of these available through PlanetMySQL.