一台服务器上部署mysql集群(用于测试)。IP为192.168.7.221,端口分配如下:
3311 管理节点
3312 数据节点
3313 数据节点
3314 sql节点
3315 sql节点
下载:http://pan.baidu.com/s/1sjuYRDV
1、创建组和用户、目录
groupadd mysql
useradd -g mysql mysql
mkdir -p /home/mysql/product/7.4/mysql-cluster
mkdir /home/mysql/mnode #管理节点目录
mkdir /home/mysql/d1node #数据节点目录
mkdir /home/mysql/d2node #
mkdir /home/mysql/s1node #sql节点目录
mkdir /home/mysql/s2node #
2、解压并授权
tar zxvf mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64.tar.gz
cd mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64
cp -r * /home/mysql/product/cluster/7.4/mysql-cluster
chown -R root:mysql /home/mysql/product/7.4/
chown -R mysql:mysql /home/mysql/*node
3、配置环境变量vi /root/.bash_profile
#MySQL Cluster Env
export MYSQL_BASE=/home/mysql
export MYSQL_CLUSTER=$MYSQL_BASE/product/7.4/mysql-cluster
export LD_LIBRARY_PATH=$MYSQL_CLUSTER/lib:/lib:/usr/lib:/usr/local/lib
export TMPDIR=/tmp
export PATH=$MYSQL_CLUSTER/bin:$PATH
添加后使之生效重连或source /root/.bash_profile
4、开始配置集群1)配置管理节点
cd /home/mysql/mnode
vi mgm.cnf
[NDBD DEFAULT]
NoOfReplicas=1
DataMemory=100M
IndexMemory=20M
[TCP DEFAULT]
portnumber=2222
#Management process options
[NDB_MGMD]
hostname=192.168.7.221
datadir=/home/mysql/mnode
PortNumber=3311
[NDBD]
hostname=192.168.7.221
datadir=/home/mysql/d1node
[NDBD]
hostname=192.168.7.221
datadir=/home/mysql/d2node
[MYSQLD]
hostname=192.168.7.221
[MYSQLD]
开启管理节点(第一次启动时添加initial)ndb_mgmd -f mgm.cnf --configdir=/home/mysql/product/7.4/mysql-cluster --initial
MySQL Cluster Management Server mysql-5.6.24 ndb-7.4.6
可以查看进程或端口,是否开启ps -ef|grep mysql
root 3243 1 1 00:33 ? 00:00:14 ndb_mgmd -f mgm.cnf --configdir=/home/mysql/product/7.4/mysql-cluster --initial
netstat -nultap|grep 331
tcp 0 0 0.0.0.0:3311 0.0.0.0:* LISTEN 3243/ndb_mgmd
tcp 0 0 127.0.0.1:3311 127.0.0.1:49979 ESTABLISHED 3243/ndb_mgmd
tcp 0 0 127.0.0.1:49979 127.0.0.1:3311 ESTABLISHED 3243/ndb_mgmd
可以连接到管理节点控制台,查看所有对应节点情况(除管理节点,其它均未开启,所以是not connected)
ndb_mgm 192.168.7.221 3311
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 192.168.7.221:3311
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 192.168.7.221)
id=3 (not connected, accepting connect from 192.168.7.221)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 192.168.7.221)
id=5 (not connected, accepting connect from any host)
2)配置数据节点more /home/mysql/d1node/data.cnf
[mysqld]
port=3312
skip-locking
ndbcluster
ndb-connectstring=192.168.7.221:3311
[mysql_cluster]
ndb-connectstring=192.168.7.221:3311
开启服务(只有在第一次启动数据节点时使用initial)ndbd --defaults-file=/home/mysql/d1node/data.cnf --initial
2015-08-31 17:41:11 [ndbd] INFO -- Angel connected to '192.168.7.221:3311'
2015-08-31 17:41:11 [ndbd] INFO -- Angel allocated nodeid: 2
同上配置另外一个数据节点(只需修改端口号)后开启,在管理节点控制台可以看到已启动的服务ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6, Nodegroup: 0, *)
id=3 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 192.168.7.221)
id=5 (not connected, accepting connect from any host)
3)配置sql节点(同普通mysql)<pre name="code" class="sql">cat /home/mysql/s1node/my.cnf
[client]
default-character-set=utf8
[mysqld]
port=3314
basedir=/home/mysql/product/7.4/mysql-cluster
datadir= /home/mysql/s1node
socket=/home/mysql/run/mysql3314.sock
pid-file=/home/mysql/run/mysqld3314.pid
log-error=/var/log/mysqld3314.log
character-set-server=utf8
ndbcluster
ndb-connectstring=192.168.7.221:3311
初始化/home/mysql/product/7.4/mysql-cluster/scripts/mysql_install_db \
--basedir=/home/mysql/product/7.4/mysql-cluster --datadir=/home/mysql/s1node --port=3314 --user=mysql
启动sql服务
/home/mysql/product/7.4/mysql-cluster/bin/mysqld \
--defaults-file=/home/mysql/s1node/my.cnf --user=mysql &
同样方式配置第二个sql节点,开启后查看管理节点控制台,显示所有服务器都已启动,如下:ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6, Nodegroup: 0, *)
id=3 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6)
[mysqld(API)] 2 node(s)
id=4 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6)
id=5 @192.168.7.221 (mysql-5.6.24 ndb-7.4.6)
显而易见,mysql集群的开启顺序:管理节点--->数据节点--->sql节点