一、检查环境

1.检查系统是否装载了mysql 

使用命令rpm -qa|grep -i mysql

如果有显示全部卸载,如果没有说明没有安装mysql,有的话则删除 .

使用命令:rpm -e ****** 或者 yum -y remove *****

2.删除my.cnf

使用命令rm fr /etc/my.cnf

二、部署安装(管理节点和数据节点同样操作)

1.添加用户组及用户

shell> groupadd mysql
shell> useradd mysql -g mysql
2.解压安装包

shell> mv mysql-cluster-gpl-***-linux2.6-x86_64.tar.gz /usr/local/
shell> cd /usr/local/
shell> tar zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz /usr/local/
shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
shell> chown -R mysql:mysql mysql
shell> cd mysql

3.带参数安装
shell> scripts/mysql_install_db --user=mysql 

       --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &

4.复制启动的快捷方式

拷贝ndb_mgm ndb_mgmd 文件到 /usr/local/bin/

cp -fr /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/

【管理节点配置

a.创建mysql-cluster文件夹

mkdir /var/lib/mysql-cluster

b.创建 config.ini文件

vi /var/lib/mysql-cluster/config.ini

文件内容

[NDBD DEFAULT]  

NoOfReplicas: 1  #定义在Cluster环境中相同数据的份数 最大为4

# Data Memory, Index Memory, and String Memory #

DataMemory: 500M   #分配的数据内存大小

IndexMemory: 250M   #设定用于存放索引(非主键)数据的内存段大小

MaxNoOfAttributes: 20480   #类似于总体设置,大一些好,不数据量时容易报错

MaxNoOfTables: 1024

MaxNoOfOrderedIndexes: 2048

MaxNoOfUniqueHashIndexes: 512

MaxNoOfTriggers: 10240

[MGM DEFAULT]

PortNumber: 1186  #管理节点端口

[NDB_MGMD]    #管理节点IP配置datadir值必须是真实存在的,不然启动报错 

Nodeid=1   

hostname=192.168.1.77   

datadir=/var/lib/mysql-cluster/

[NDBD]   #数据节点1

Nodeid=2

hostname=192.168.1.78

datadir=/usr/local/mysql/data

[NDBD]  #数据节点2

Nodeid=3

hostname=192.168.1.79

datadir=/usr/local/mysql/data

[MYSQLD] #SQL节点1

hostname=192.168.1.77  

[MYSQLD] #SQL节点2

hostname=192.168.1.77  

[MYSQLD] #预留节点以备扩展使用,否则会出现Failed to allocate nodeid No free node id found for ndbd(NDB)错误

保存退出

c.创建my.cnf文件

vi /etc/my.cnf

[MYSQLD]  

character_set_server=utf8  

ndbcluster   #运行NDB存储引擎

ndb-connectstring=192.168.1.77  #mysql数据库所在地址

datadir=/usr/local/mysql/data

basedir=/usr/local/mysql

port=3306

lower_case_table_names=1  #表名是否区分大小写 1为不区分,不然linux下表名是区分大小写的

[MYSQL_CLUSTER]

ndb-connectstring=192.168.1.77  #mysql cluster 管理节点IP

保存退出

【数据节点配置】

a.创建my.cnf文件 

[MYSQLD]  

character_set_server=utf8  

ndbcluster   #运行NDB存储引擎

ndb-connectstring=192.168.1.78  #mysql数据库所在地址

datadir=/usr/local/mysql/data

basedir=/usr/local/mysql

port=3306

lower_case_table_names=1  #表名是否区分大小写 1为不区分,不然linux下表名是区分大小写的

[MYSQL_CLUSTER]

ndb-connectstring=192.168.1.77  #mysql cluster 管理节点IP

保存退出

三、安装后调试准备

1.把服务器的防火墙(IPTABLES)与 selinux关闭

service iptables stop

vi /etc/selinux/config  (改为SELINUX=disabled)保存退出

2.reboot两台机器

由于不是从系统启动方面停止的防火墙(IPTABLES)

所以再停止一次防火墙(IPTABLES)

service iptables stop

四、启动

启动顺序管理节点 à  数据节点 à SQL节点

关闭顺序SQL节点à  数据节点 à 管理节点

1.动管理节点服务
shell> /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
shell> netstat -lntpu
看到1186开放说明启动正常


2.启动数据节点服务 Data (NDBD) node
shell> /usr/local/mysql/bin/ndbd --initial

在两台机器上启动服务, 执行相同操作
必须注意:只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加initial参数!

启动结果如下:
2012-06-30 05:01:11 [ndbd] INFO -- Angel connected to '192.168.6.134:1186'
2012-06-30 05:01:11 [ndbd] INFO -- Angel allocated nodeid

操作命令节点状态、客户端状态查看 ndb_mgm -e show

停止管理节点与数据节点 ndb_mgm e shutdown 

五、测试功能是否安装成功

  在其中一个数据库中建立数据库和表,并插入数据。然后在另外的数据库中查看是否有数据。

例如:create table test1(id int) engine=ndbcluster ;

此处engine必须为ndbcluster 不然集群时导入数据易丢失,而且建立表的字段时必须有主键,不然cluster会默认为你添加主键,耗费无限的内存,导致系统崩溃(此处为测试表,没有主键,请谅解)