1. 部署环境
1.1 机器环境
两台机器,CentOS 6.0 Basic Server。
安装“Development Tools”(yum groupinstall 'Development Tools')。
1.2 MySQL Cluster版本
mysql-cluster-gpl-7.1.15a-linux-i686-glibc23.tar.gz
下载地址: http://dev.mysql.com/downloads/cluster
1.3 节点分配
使用一个管理节点,两个数据节点,两个SQL节点。
分配如下:
-------------------------------
Name | IP
-------------------------------
Mgm1 | 192.168.1.1
-------------------------------
Ndb1 | 192.168.1.1
-------------------------------
Ndb2 | 192.168.1.2
-------------------------------
MySQL1 | 192.168.1.1
-------------------------------
MySQL2 | 192.168.1.2
-------------------------------
2. 安装配置
2.1 添加mysql用户
groupadd mysql
useradd -g mysql mysql
2.2 安装
tar -xzvf mysql-cluster-gpl-7.1.15a-linux-i686-glibc23.tar.gz -C /usr/local/
mv /usr/local/mysql-cluster-gpl-7.1.15a-linux-i686-glibc23 /usr/local/mysql
数据节点及SQL节点:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
管理节点:
cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/
chmod +x /usr/local/bin/ndb_mgm*
2.3 配置
mkdir -p /usr/local/mysql/mysql-cluster
mkdir -p /var/run/mysqld
2.3.1 配置管理节点
在mysql-cluster目录新建文件 config.ini。
config.ini:
# Begin
[ndbd default]
NoOfReplicas=2 # 副本数
ServerPort=2202
[mysqld default]
[ndb_mgmd default]
[tcp default]
[ndb_mgmd]
HostName=192.168.1.1
[ndbd]
HostName=192.168.1.1
DataDir=/usr/local/mysql/mysql-cluster # 数据存储目录
[ndbd]
HostName=192.168.1.2
DataDir=/usr/local/mysql/mysql-cluster # 数据存储目录
[mysqld]
HostName=192.168.1.1
[mysqld]
HostName=192.168.1.2
# End
2.3.2 配置数据节点和SQL节点
在文件 /etc/my.cnf 中添加以下数据:
my.cnf:
# Begin
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
ndb-connectstring=192.168.1.1 # IP of mgm
[mysql_cluster]
ndb-connectstring=192.168.1.1 # IP of mgm
# End
2.4 设置mysql目录归属
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/data
chgrp -R mysql /usr/local/mysql
chown -R mysql:mysql /var/run/mysqld
2.5 开放集群连接端口
端口只为集群机器开放。
管理节点默认端口为1186,数据节点端口设为2202,SQL节点的默认服务端口为3306。
在/etc/sysconfig/iptables中添加:
-A INPUT -i eth1 -s 192.168.1.0/24 -m state --state NEW -m tcp -p tcp --dport 1186 -j ACCEPT
-A INPUT -i eth1 -s 192.168.1.0/24 -m state --state NEW -m tcp -p tcp --dport 2202 -j ACCEPT
-A INPUT -i eth1 -s 192.168.1.0/24 -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
然后重启iptables:
service iptables restart
3. 启动Cluster环境
保证启动顺序:先管理节点,再数据节点,最后SQL节点
3.1 启动MGM
ndb_mgmd -f /usr/local/mysql/mysql-cluster/config.ini
3.2 启动NDBD
/usr/local/mysql/bin/ndbd --initial
注意,只有首次启动时,才添加--initial参数
3.3 启动SQL
/usr/local/mysql/bin/mysqld_safe --user=mysql &
4. 安全关闭
关闭SQL节点的mysqld服务:
/usr/local/mysql/bin/mysqladmin -uroot shutdown
关闭Cluster,在MGM节点所在机器上运行:
ndb_mgm -e shutdown
5. 备注
新建表时,需指定表的存储引擎:
engine=ndbcluster