首先简单介绍一下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手册。