Main Content
1. Get; 2. Install; 3. Configure; 4. Run; 5. Test; 6. Stop; 7. Conclusion
1. Get
You don't have to talk about this. Just download it from the MySQL website. The MySQL Cluster deployment test manual in English is very concise, and its content is basically the same here. Anyone who likes to read the English version can download it directly and skip this article.
2. Installation
Decompress the package and create a symbolic link:
- michael@linux:~$ tar xvf mysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar
- michael@linux:~$ ln -s mysql-cluster-gpl-7.2.4-linux2.6-x86_64 mysqlc
If you want to, you can~/mysqlc/binAdd it to your path for ease of use.
3. Configuration
As the first deployment in the development environment, the main purpose is to test. A complete MySQL Cluster consists of MySQL Server, Data Nodes, and Management Node. First, create some required directories for them:
- michael@linux:~$ mkdir mysql-cluster
- michael@linux:~$ cd mysql-cluster
- michael@linux:~$ mkdir conf ndb_data mysqld_data
ThenconfCreate the following two files in the directory:config.iniAndmy.cnf, The content is as follows:
Config. ini
Used for MySQL Server configuration, Port NumberportSet according to your own situation.
- [mysqld]
- ndbcluster
- datadir=/home/user1/my_cluster/mysqld_data
- basedir=/home/user1/mysqlc
- port=5050
My. cnf
This file is used to configure the NodeId of each Node and the Data directory of Data Nodes and Management Node.
- [ndb_mgmd]
- hostname=localhost
- datadir=/home/user1/my_cluster/ndb_data
- NodeId=1
-
- [ndbd default]
- noofreplicas=2
- datadir=/home/user1/my_cluster/ndb_data
-
- [ndbd]
- hostname=localhost
- NodeId=3
-
- [ndbd]
- hostname=localhost
- NodeId=4
-
- [mysqld]
- NodeId=50
In this case, your directory structure should be as follows:
- ~
- +-- /mysql-cluster-gpl-7.2.4-linux2.6-x86_64
- +-- /mysqlc -> mysql-cluster-gpl-7.2.4-linux2.6-x86_64
- +-- /mysql-cluster
- +-- /conf
- +-- /ndb_data
- +-- /mysqld_data
4. Run
The startup sequence of MySQL Cluster is as follows:
-
Management Node
-
Data Nodes
-
MySQL Server
The command is as follows:
- michael@linux:~$ cd ../mysql-cluster
- michael@linux:~/mysql-cluster$ $HOME/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=$HOME/mysql-cluster/conf/
- michael@linux:~/mysql-cluster$ $HOME/mysqlc/bin/ndbd -c localhost:1186
- michael@linux:~/mysql-cluster$ $HOME/mysqlc/bin/ndbd -c localhost:1186
Check the status of the started node. The command is:
- poecahnt@linux:~$ $HOME/mysqlc/bin/ndb_mgm -e show
The output is as follows:
- Connected to Management Server at: localhost:1186
- Cluster Configuration
- ---------------------
- [ndbd(NDB)] 2 node(s)
- id=3 @127.0.0.1 (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0, Master)
- id=4 @127.0.0.1 (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0)
-
- [ndb_mgmd(MGM)] 1 node(s)
- id=1 @127.0.0.1 (mysql-5.5.19 ndb-7.2.4)
-
- [mysqld(API)] 1 node(s)
- id=50 @127.0.0.1 (mysql-5.5.19 ndb-7.2.4)
MySQL Server can be started. Start MySQL Server. The command is:
- michael@linux:~/mysql-cluseter$ $HOME/mysqlc/bin/mysqld --defaults-file=conf/my.cnf &
The output information is as follows:
- 120223 15:29:02 InnoDB: The InnoDB memory heap is disabled
- 120223 15:29:02 InnoDB: Mutexes and rw_locks use GCC atomic builtins
- 120223 15:29:02 InnoDB: Compressed tables use zlib 1.2.3
- 120223 15:29:02 InnoDB: Using Linux native AIO
- 120223 15:29:02 InnoDB: Initializing buffer pool, size = 128.0M
- 120223 15:29:02 InnoDB: Completed initialization of buffer pool
- 120223 15:29:02 InnoDB: highest supported file format is Barracuda.
- 120223 15:29:02 InnoDB: Waiting for the background threads to start
- 120223 15:29:03 InnoDB: 1.1.8 started; log sequence number 1595675
- 120223 15:29:04 [Note] NDB: NodeID is 50, management server 'localhost:1186'
- 120223 15:29:04 [Note] NDB[0]: NodeID: 50, all storage nodes connected
- 120223 15:29:04 [Warning] NDB: server id set to zero - changes logged to bin log with server id zero will be logged with another server id by slave mysqlds
- 120223 15:29:04 [Note] Starting Cluster Binlog Thread
- 120223 15:29:04 [Note] Event Scheduler: Loaded 0 events
- 120223 15:29:04 [Note] $HOME/mysqlc/bin/mysqld: ready for connections.
- Version: '5.5.19-ndb-7.2.4-gpl' socket: '/tmp/mysql.sock' port: 5050 MySQL Cluster Community Server (GPL)
- 120223 15:29:05 [Note] NDB: Creating mysql.ndb_schema
- 120223 15:29:08 [Note] NDB Binlog: CREATE TABLE Event: REPL$mysql/ndb_schema
- 120223 15:29:09 [Note] NDB Binlog: logging ./mysql/ndb_schema (UPDATED,USE_WRITE)
- 120223 15:29:09 [Note] NDB: Creating mysql.ndb_apply_status
- 120223 15:29:09 [Note] NDB Binlog: CREATE TABLE Event: REPL$mysql/ndb_apply_status
- 120223 15:29:09 [Note] NDB Binlog: logging ./mysql/ndb_apply_status (UPDATED,USE_WRITE)
- 120223 15:29:09 [Note] NDB: missing frm for mysql.ndb_index_stat_sample, discovering...
- 120223 15:29:09 [Note] NDB: missing frm for mysql.ndb_index_stat_head, discovering...
- 2012-02-23 15:29:10 [NdbApi] INFO -- Flushing incomplete GCI:s < 579/14
- 2012-02-23 15:29:10 [NdbApi] INFO -- Flushing incomplete GCI:s < 579/14
- 120223 15:29:10 [Note] NDB Binlog: starting log at epoch 579/14
- 120223 15:29:10 [Note] NDB Binlog: ndb tables writable
5. Test
Connect to MySQL Server for testing.ndbStorage engine to create tables in the database, as follows:
- michael@linux:~$ $HOME/mysqlc/bin/mysql -h 127.0.0.1 -P 5050
- mysql> create database clusterdb;
- mysql> use clusterdb;
- mysql> insert into simples values (1),(2),(3),(4);
- mysql> select * from simples;
-
- +----+
- | id |
- +----+
- | 3 |
- | 1 |
- | 2 |
- | 4 |
- +----+
6. Stop
MySQL Cluster must be stopped manually. Data Nodes can be stopped using ndb_mgm:
- michael@linux:~$ $HOME/mysqlc/bin/mysqladmin -h 127.0.0.1 -P 5050 shutdown
If the prompt is:
- /home/michael/mysqlc/bin/mysqladmin: shutdown failed; error: 'Access denied; you need (at least one of) the SHUTDOWN privilege(s) for this operation'
InshutdownAddsudo.
- michael@linux:~$ $HOME/mysqlc/bin/ndb_mgm -e shutdown
The normal stop information is similar to the following:
- 120223 16:44:11 [Note] /home/michael/mysqlc/bin/mysqld: Normal shutdown
-
- michael@linux:~/mysql-cluster$ 120223 16:44:11 [Note] Event Scheduler: Purging the queue. 0 events
- 120223 16:44:13 [Warning] /home/michael/mysqlc/bin/mysqld: Forcing close of thread 2 user: 'michael'
-
- 120223 16:44:13 [Note] Stopping Cluster Utility thread
- 120223 16:44:13 [Note] Stopping Cluster Index Stats thread
- 120223 16:44:13 [Note] Stopping Cluster Binlog
- 120223 16:44:13 [Note] Stopping Cluster Index Statistics thread
- 120223 16:44:14 InnoDB: Starting shutdown...
- 120223 16:44:15 InnoDB: Shutdown completed; log sequence number 1595675
- 120223 16:44:15 [Note] /home/michael/mysqlc/bin/mysqld: Shutdown complete
7. Summary
-
Orderly startup: Management Node, Data Nodes, MySQL Server
-
Configuration items correspond to each node
-
Each node is started independently.
-
Management Node provides multiple functions such as status view.