Redhat6.5 安装MySQL5.6集群
0、集群概述
Mysqlcluster是一种使内存数据库集群在无共享系统中运行的技术,被设计来不会有任何单点故障,在无共享系统中每个硬件都被期望有自己的内存和硬盘,其他共享结构(NFS/SAN)都不会被推荐。集群使用的是NDB(network database)技术,NDB也指NDB引擎,集群就是mysql和NDB的结合体。
集群由主机群组成,每个主机运行一个或者多个进程,这些进程也称为节点。节点包括mysql servers(用来访问NDB数据),data nodes(用来存放数据),managermentservers(用来管理)。
当数据被NDB存贮引擎存贮的时候,表和表数据被存贮在数据节点中。这些表可以直接从SQL节点访问。尽管MySQL节点使用mysqld服务进程,但是它与MySQL5.6distributions中的mysqld有很大的不同,两者不可以互换。另外,一个没有链接到MySQL集群的MySQL服务是不可以使用NDB引擎的也不可以访问MySQL集群的数据。单个节点可以关闭和重启,并且可以重新加入集群。轮番重启(按顺序重启)可以被用来改变配置和升级软件。轮番重启也可以用来在集群中加入新节点。
1、安装准备
机器信息:
管理节点 |
SQL节点 |
数据节点 |
10.160.18.34 |
10.160.18.34 |
10.160.18.34 |
10.160.18.35 |
10.160.18.35 |
本次安装中只有两台虚拟机,管理节点放在其中一台,SQL节点和数据节点都部署在同一台机器上。实际中管理节点通常单独一台,逻辑比较清晰。
所需安装包:mysql-cluster-gpl-7.4.7-linux-glibc2.5-x86_64.tar.gz
下载地址:http://dev.mysql.com/downloads/file.php?id=457970
2、开始安装
2.1建立用户
在节点10.160.18.34和10.160.18.35上操作:
解压集群软件mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz到/usr/local目录下,该软件已经包含了数据库软件和集群套件。建立mysql用户,无需赋予远程登陆权限。
#groupadd mysql
# useradd –r –g mysql mysql //-r无需登录系统
#cd /usr/local
#tar xvfmysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz
# ln –smysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64 mysql //建立链接
#chown –R mysql.mysqlmysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64 //修改权限
#chown –R mysql.msyql mysql //修改mysql目录权限
2.2 配置SQL和数据节点
在节点10.160.18.34和10.160.18.35上操作:
#mkdir –p /u01/app/mysql/data //建立数据存放目录
#chown –R mysql.mysql /u01
#scripts/mysql_install_db –basedir=/usr/local/mysql–datadir=/u01/app/mysql/data –user=msyql
//安装数据库mysql
#cp bin/ndbd /usr/local/bin/
#cp bin/ndbmtd /usr/local/bin
#cp support-files/mysql.server/etc/rc.d/init.d/mysqld //配置启动服务
# chkconfig –add mysqld
#cp my.cnf /etc/my.cnf
#vi /etc/my.cnf //配置数据库启动文件
[mysqld]
ndbcluster
ndb-connectstring=10.160.18.34
basedir=/usr/local/mysql
datadir=/u01/app/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql_cluster]
ndb-connectstring=10.160.18.34
在管理节点10.160.18.34上配置:
#cd /usr/local/mysql
#mkdir mysql-cluster
#cp bin/ndb_mgm* /usr/local/bin
#cd /var/lib
#mkdir mysql-cluster
#cd mysql-cluster
# vi config.ini
[ndbd default]
NoOfReplicas=1
DataMemory=80M
IndexMemory=18M
[tcp default]
[ndb_mgmd]
Hostname=10.160.18.34
Datadir=/var/lib/mysql-cluster
Nodeid=1
[ndbd]
Hostname=10.160.18.34
Datadir=u01/app/mysql/data
Nodeid=2
[ndbd]
Hostname=10.160.18.35
Datadir=/u01/app/mysql/data
Nodeid=3
[mysqld]
Hostname=10.160.18.34
Nodeid=4
[mysqld]
Hostname=10.160.18.35
Nodeid=5
3、集群管理
3.1启动集群
在管理节点10.160.18.34上,启动集群:
#ndb_mgmd –f /var/lib/mysql-cluster/config.ini//启动
MySQL Cluster Management Servermysql-5.6.25 ndb-7.4.7
#ndb_mgm
ndb_mgm> show
Connected to Management Server at:10.160.18.34:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from10.160.18.34)
id=3 (not connected, accepting connect from10.160.18.35)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.160.18.34 (mysql-5.6.25ndb-7.4.7)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from10.160.18.34)
id=5 (not connected, accepting connect from10.160.18.35)
可以看到,管理节点已经连接,数据节点和SQL节点还没有起来
在节点10.160.18.34和10.160.18.35上,启动数据节点:
#ndbd –initial //启动数据节点
2015-07-23 09:32:21 [ndbd] INFO -- Angel connected to '10.160.18.34:1186'
2015-07-23 09:32:21 [ndbd] INFO -- Angel allocated nodeid: 3
再查看
ndb_mgm> show
Connected to Management Server at:10.160.18.34:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @10.160.18.34 (mysql-5.6.25ndb-7.4.7, Nodegroup: 0, *) //节点连接
id=3 @10.160.18.35 (mysql-5.6.25ndb-7.4.7, Nodegroup: 1) //节点连接
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.160.18.34 (mysql-5.6.25 ndb-7.4.7)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from10.160.18.34)
id=5 (not connected, accepting connect from10.160.18.35)
#/service mysqld start
Starting MySQL... [ OK ]
再次查看
ndb_mgm> show
Connected to Management Server at:10.160.18.34:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @10.160.18.34 (mysql-5.6.25ndb-7.4.7, Nodegroup: 0, *)
id=3 @10.160.18.35 (mysql-5.6.25ndb-7.4.7, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.160.18.34 (mysql-5.6.25ndb-7.4.7)
[mysqld(API)] 2 node(s)
id=4 @10.160.18.34 (mysql-5.6.25ndb-7.4.7) //已经连接
id=5 @10.160.18.35 (mysql-5.6.25ndb-7.4.7) //已经连接
3.2关闭集群
#service mysqld stop //关闭SQL节点
#ndb_mgm
Ndb_mgm>shutdown //关闭集群