(mysql.info) mysql-cluster-quick
Info Catalog
(mysql.info) mysql-cluster-installing
(mysql.info) mysql-cluster-configuration
(mysql.info) mysql-cluster-config-file
15.4.3 Quick Test Setup of MySQL Cluster
----------------------------------------
To familiarize you with the basics, we will describe the simplest
possible configuration for a functional MySQL Cluster. After this, you
should be able to design your desired setup from the information
provided in the other relevant sections of this chapter.
First, you need to create a configuration directory such as
`/var/lib/mysql-cluster', by executing the following command as the
system `root' user:
shell> mkdir /var/lib/mysql-cluster
In this directory, create a file named `config.ini' that contains the
following information. Substitute appropriate values for `HostName' and
`DataDir' as necessary for your system.
# file "config.ini" - showing minimal setup consisting of 1 data node,
# 1 management server, and 3 MySQL servers.
# The empty default sections are not required, and are shown only for
# the sake of completeness.
# Data nodes must provide a hostname but MySQL Servers are not required
# to do so.
# If you don't know the hostname for your machine, use localhost.
# The DataDir parameter also has a default value, but it is recommended to
# set it explicitly.
# Note: DB, API, and MGM are aliases for NDBD, MYSQLD, and NDB_MGMD
# respectively. DB and API are deprecated and should not be used in new
# installations.
[NDBD DEFAULT]
NoOfReplicas= 1
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
[NDB_MGMD]
HostName= myhost.example.com
[NDBD]
HostName= myhost.example.com
DataDir= /var/lib/mysql-cluster
[MYSQLD]
[MYSQLD]
[MYSQLD]
You can now start the `ndb_mgmd' management server. By default, it
atttempts to read the `config.ini' file in its current working
directory, so change location into the directory where the file is
located and then invoke `ndb_mgmd':
shell> cd /var/lib/mysql-cluster
shell> ndb_mgmd
Then start a single DB node by running `ndbd'. When starting `ndbd'
for a given DB node for the very first time, you should use the
-initial option as shown here:
shell> ndbd --initial
For subsequent `ndbd' starts, you will generally want to _omit_ the
-initial option:
shell> ndbd
The reason for omitting -initial on subsequent restarts is that this
option causes `ndbd' to delete and re-create all existing data and log
files (as well as all table metadata) for this data node. One exception
to this rule about not using -initial except for the first `ndbd'
invocation is that you use it when restarting the cluster and restoring
from backup after adding new data nodes.
By default, `ndbd' looks for the management server at `localhost' on
port 1186.
* If you have installed MySQL from a binary tarball, you will
need to specify the path of the `ndb_mgmd' and `ndbd' servers
explicitly. (Normally, these will be found in `/usr/local/mysql/bin'.)
Finally, change location to the MySQL data directory (usually
`/var/lib/mysql' or `/usr/local/mysql/data'), and make sure that the
`my.cnf' file contains the option necessary to enable the NDB storage
engine:
[mysqld]
ndbcluster
You can now start the MySQL server as usual:
shell> mysqld_safe --user=mysql &
Wait a moment to make sure the MySQL server is running properly. If
you see the notice `mysql ended', check the server's `.err' file to
find out what went wrong.
If all has gone well so far, you now can start using the cluster.
Connect to the server and verify that the `NDBCLUSTER' storage engine
is enabled:
shell> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.19-Max
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW ENGINES\G
...
*************************** 12. row ***************************
Engine: NDBCLUSTER
Support: YES
Comment: Clustered, fault-tolerant, memory-based tables
*************************** 13. row ***************************
Engine: NDB
Support: YES
Comment: Alias for NDBCLUSTER
...
The row numbers shown in the preceding example output may be different
from those shown on your system, depending upon how your server is
configured.
Try to create an `NDBCLUSTER' table:
shell> mysql
mysql> USE test;
Database changed
mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
Query OK, 0 rows affected (0.09 sec)
mysql> SHOW CREATE TABLE ctest \G
*************************** 1. row ***************************
Table: ctest
Create Table: CREATE TABLE `ctest` (
`i` int(11) default NULL
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
To check that your nodes were set up properly, start the management
client:
shell> ndb_mgm
Use the `SHOW' command from within the management client to obtain a
report on the cluster's status:
NDB> SHOW
Cluster Configuration
---------------------
[ndbd(NDB)] 1 node(s)
id=2 @127.0.0.1 (Version: 3.5.3, Nodegroup: 0, Master)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (Version: 3.5.3)
[mysqld(API)] 3 node(s)
id=3 @127.0.0.1 (Version: 3.5.3)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
At this point, you have successfully set up a working MySQL Cluster.
You can now store data in the cluster by using any table created with
`ENGINE=NDBCLUSTER' or its alias `ENGINE=NDB'.
Info Catalog
(mysql.info) mysql-cluster-installing
(mysql.info) mysql-cluster-configuration
(mysql.info) mysql-cluster-config-file
automatically generated byinfo2html