首先简单介绍一下MySql Cluster,MySQL 集群是一个可扩展、高性能、集群化数据库产品。最初用于对使用要求最为最
苛刻的电信行业。电信应用要求数据库的可用性超过 99.999%。
MySQL 集群由三类节点组成:
- 数据节点(Data Nodes)存储所有属于 MySQL 集群的数据。
- 管理服务器节点(Management Server Nodes) 控制系统启动时的初始配置。
- MySQL 服务器节点(MySQL Server Nodes) 用于存取集群数据节点上的数据,为软件开发人员提供了一个标准 SQL 语言编程接口。
下面配置一个由一个管理节点、二个MySQL服务器节点和二个数据节点组成的集群,拓扑图如下:
#下载MySQL Cluster 7
shell> wget http://cdn.mysql.com/Downloads/MySQL-Cluster-7.0/mysql-cluster-gpl-7.0.35-linux-i686-glibc23.tar.gz
#在三台主机上添加mysql用户与组
shell> groupadd mysql
shell> useradd -g mysql mysql
#解压到/usr/local 建立连接
shell> tar -C /usr/local -zxvf mysql-cluster-gpl-7.0.35-linux-i686-glibc23.tar.gz
shell> ln -s /usr/local/mysql-cluster-gpl-7.0.35-linux-i686-glibc23 /usr/local/mysql
#进入mysql目录,运行所提供的用于创建系统数据库的脚本(默认配置/etc/my.cnf)
shell> cd mysql
shell> scripts/mysql_install_db --user=mysql
#设置目录权限
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
配置管理节点
#创建目录
shell> mkdir /usr/local/mysql-cluster
shell> cd /usr/local/mysql-cluster
shell> mkdir data
shell> cd ..
#创建集群配置文件config.ini
shell> vim config.ini
[NDBD DEFAULT]
NoOfReplicas: 2
DataDir: /usr/local/mysql-ndb/data
# Data Memory, Index Memory, and String Memory
DataMemory: 128M
IndexMemory: 64M
BackupMemory: 32M
[MGM DEFAULT]
PortNumber: 1186
DataDir: /usr/local/mysql-cluster/data
[NDB_MGMD]
Id: 1
HostName: 192.168.66.170
ArbitrationRank: 1
[NDBD]
Id: 2
HostName: 192.168.66.171
[NDBD]
Id: 3
HostName: 192.168.66.172
[API]
Id: 4
HostName: 192.168.66.171
ArbitrationRank: 2
BatchByteSize:64KB
[API]
Id: 5
HostName: 192.168.66.172
BatchByteSize:64KB
[API]
Id: 6
[API]
Id: 7
配置数据节点与MySQLD节点
#分别在171和172主机上创建目录
shell> mkdir -p /usr/local/mysql-ndb/data
#创建数据节点配置文件
shell> vim /usr/local/mysql-ndb/my.cnf
[MYSQLD]
ndbcluster # run NDB engine
ndb-connectstring=192.168.66.170 # location of MGM node
# Options for ndbd process:
[MYSQL_CLUSTER]
ndb-connectstring=192.168.66.170 # location of MGM node
配置MySQLD节点
#分别修改171和172主机mysqld默认配置文件,追加以下内容
shell> vim /etc/my.cnf
[mysqld]
ndbcluster # run NDB engine
ndb-connectstring=192.168.66.170 # location of MGM node
[MYSQL_CLUSTER]
ndb-connectstring=192.168.66.170 # location of MGM node
启动集群
#启动集群管理节点
shell> ndb_mgmd -f /usr/local/mysql-cluster/config.ini
或
shell> ndb_mgmd -f /usr/local/mysql-cluster/config.ini --initial
--initial 此参数在修改config.ini文件后使用
#启动数据节点
shell> ndbd --defaults-file=/usr/local/mysql-ndb/my.cnf --initial
--initial 首次启动数据节点使用
#启动MySQLD节点
shell> mysqld_safe &
查看集群状态
#登录管理节点
shell> ndb_mgm
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.66.171 (mysql-5.1.63 ndb-7.0.35, Nodegroup: 0, Master)
id=3 @192.168.66.172 (mysql-5.1.63 ndb-7.0.35, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.66.170 (mysql-5.1.63 ndb-7.0.35)
[mysqld(API)] 4 node(s)
id=4 @192.168.66.171 (mysql-5.1.63 ndb-7.0.35)
id=5 @192.168.66.172 (mysql-5.1.63 ndb-7.0.35)
id=6 (not connected, accepting connect from any host)
id=7 (not connected, accepting connect from any host)
环境搭建成功,具体集群中的详细配置参数请查看MySQL手册。