运行环境:
centos6.1
Mysql版本:
mysql-cluster-gpl-7.2.6-linux2.6-x86_6
对于这第一个MySQL数据库的集群,它由1个单一的MySQL服务引擎(mysqlds)、两个数据节点(ndbd)和一个单一的管理节点(ndb_mgmd)共同组成,所有的节点都运行在同一台主机上。
为配置文件和数据文件创建必要的存储文件夹,分别要建立如下几个文件夹:
① /home/mysql/my_cluster
② /home/mysql/my_cluster/ndb_data
③ /home/mysql/my_cluster/mysqld_data
④ /home/mysql/my_cluster/mysqld_data/mysql
⑤ /home/mysql/my_cluster/mysqld_data/ndbinfo
⑥ /home/mysql/my_cluster/conf
具体安装步骤:
1. 添用加户与组mysql
shell> groupadd mysql
shell> useradd -r -d /home/mysql -g mysql mysql
2. 切换到mysql用户权限下
shell> su - mysql
3. 下载mysql cluster
shell> wget http://cdn.mysql.com/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
shell> tar -zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
shell> ln -s mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysqlc
4. 安装mysql cluster
shell> cd /home/mysql
shell> mkdir my_cluster my_cluster/ndb_data my_cluster/mysqld_data my_cluster/conf
在conf目录添加以下2个配置文件(注意:“/home/mysql”需要替换为你自己的用户目录)
my.cnf:
[mysqld]
ndbcluster
datadir=/home/mysql/my_cluster/mysqld_data
basedir=/home/mysql/mysqlc
port=5000
config.ini:
[ndb_mgmd]
hostname=localhost
datadir=/home/mysql/my_cluster/ndb_data
NodeId=1
[ndbd default]
noofreplicas=2
datadir=/home/mysql/my_cluster/ndb_data
[ndbd]
hostname=localhost
NodeId=3
[ndbd]
hostname=localhost
NodeId=4
[mysqld]
NodeId=50
安装
shell> cd /home/mysql/mysqlc
shell> scripts/mysql_install_db --no-defaults --datadir=/home/mysql/my_cluster/mysqld_data/
5. 运行
进程需要启动management node, data nodes 与 MySQL Server
shell> cd ../my_cluster/
① 最先启动的是管理节点(ndb_mgmd)
shell> /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_cluster/conf/
② 启动第一个数据节点(ndbd)
shell> /home/mysql/mysqlc/bin/ndbd -c localhost:1186
③ 启动第二个数据节点(ndbd)
shell> /home/mysql/mysqlc/bin/ndbd -c localhost:1186
在启动MySQL服务引擎(mysqld)之前,一定要等到所有的数据节点全部启动完毕,然后才能启动MySQL服务引擎。查看数据节点是否启动完毕的命令语句如下:
shell> /home/mysql/mysqlc/bin/ndb_mgm -e show
显示结果:
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
id=4 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6)
[mysqld(API)] 1 node(s)
id=50 (not connected, accepting connect from any host)
④ 启动MySQL服务引擎
shell> /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/my.cnf &
启动成功后的进程如下:
mysql 1738 0.1 0.5 575408 5752 ? Ssl 00:58 0:14 /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_cluster/conf/
mysql 1751 0.0 0.0 101116 660 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:1186
mysql 1752 0.3 31.5 1048328 320704 ? Sl 00:58 0:41 /home/mysql/mysqlc/bin/ndbd -c localhost:1186
mysql 1790 0.0 0.0 101116 708 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:1186
mysql 1791 0.3 40.9 1048328 417228 ? Sl 00:58 0:38 /home/mysql/mysqlc/bin/ndbd -c localhost:1186
mysql 1835 0.0 5.4 886712 55296 pts/0 Sl 00:59 0:11 /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/my.cnf
mysql 1897 0.0 0.1 198204 2032 pts/1 S+ 01:00 0:00 /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root
6. 测试
连接到MySQL服务器,并确认使用MySQL集群(NDB)可以创建表① 连接到MySQL服务器:
shell> /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root
mysql> create database clusterdb;use clusterdb;
mysql> create table simples (id int not null primary key) engine=ndb;
mysql> insert into simples values (1),(2),(3),(4);
mysql> select * from simples;
+----+
| id |
+----+
| 3 |
| 1 |
| 2 |
| 4 |
+----+
7. 停止服务
MySQL服务必须手动停止,服务停止后,其他集群节点的停止可以使用管理节点(ndb_mgm)来
shell> /home/mysql/mysqlc/bin/mysqladmin -u root -h 127.0.0.1 -P 5000 shutdown
shell> /home/mysql/mysqlc/bin/ndb_mgm -e shutdown