本文主要介绍Mysql-Cluster的安装,首先先简单了解一下:(linux用户,本人 debian)
MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。(百度粘贴-_-)
一、简介
Mysql-cluster分为:
1. 管理节点:管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等
2. 数据节点:用于保存 Cluster的数据
3. Sql节点:用来访问 Cluster数据的节点
二、安装
此安装为1个管理节点,2个数据节点,2个sql节点,安装在两台机器,一台机器:管理节点,数据节点,sql节点,另一台:数据节点,sql节点
节点名称 |
IP |
管理节点 |
192.168.1.111 |
数据节点1 |
192.168.1.111 |
数据节点2 |
192.168.1.112 |
Sql节点1 |
192.168.1.111 |
Sql节点2 |
192.168.1.112 |
三、安装步骤
1. 为mysqld增加一个登陆用户组,两台服务器都需要
# groupadd mysql
# useradd –g mysqlmysql
2. 安装管理节点
# tar zxvf mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz
# mv mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64/*/opt/mysql –r
创建mysql-cluster目录,并配置config.ini
# mkdir/apps/mysql/mysql-cluster
# cd/apps/mysql/mysql-cluster
# vi config.ini
内容如下:
[ndbddefault]
NoOfReplicas=2 (代表sql节点的数量)
DataMemory=500M
indexMemory=300M
[tcpdefault]
SendBufferMemory=2M
ReceiveBufferMemory=2M
[ndb_mgmddefault]
PortNumber=1186
Datadir=/apps/mysql/mysql-cluster
[ndb_mgmd]
NodeId=1
HostName=192.168.1.111
[ndbd]
NodeId=2
HostName=192.168.1.111
DataDir=/apps/mysql/data
[ndbd]
NodeId=2
HostName=192.168.1.112
DataDir=/apps/mysql/data
[mysqld]
NodeId=3
Hostname=192.168.1.111
[mysqld]
NodeId=3
Hostname=192.168.1.112
3. 安装数据节点
Vi /etc/my.cnf
如下:
[mysqld]
datadir=/opt/mysql/ndbdata
port =3306
ndbcluster #数据节点(因为在一台机器所以合并)
ndb-connectstring=192.168.1.111
port =3307
[mysql_cluster]
ndb-connectstring = 192.168.1.111
4. 安装sql节点
Vi /etc/my.cnf
如下:
[mysqld]
datadir=/opt/mysql/ndbdata
port =3306
ndbcluster #数据节点(因为在一台机器所有合并)
ndb-connectstring=192.168.1.111
port =3307
[mysql_cluster]
ndb-connectstring = 192.168.1.111
next:(安装mysqld)
# cd /opt/mysql
# ./scripts/mysql_install_db –user=mysql (安装到了 /opt/mysql/ndbdata)
5. 开始启动cluster
开启顺序: 管理节点->数据节点->sql节点
管理节点启动
# cd /opt/mysql
# ./bin/ndb_mgmd –f /apps/mysql/mysql-cluster/config.ini--configdir=/apps/mysql/mysql-cluster/--ndb-nodeid=1
数据节点启动(两个节点都要启动,不然sql节点不能启动)
# cd /opt/mysql
# ./bin/ndbd –-initial –-ndb-connectstring=192.168.1.111:1186
Sql节点启动
# cd /opt/mysql/ndbdata
# ../bin/mysqld_safe –user=mysql &
6. 查看
# cd /opt/mysql/
# ./bin/ndb_mgm –e show
Connectedto Management Server at: 192.168.1.111:1186
ClusterConfiguration
---------------------
[ndbd(NDB)] 1 node(s)
id=2 @192.168.1.111 (mysql-5.6.21 ndb-7.3.7, Nodegroup: 0, *)
id=3 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7, Nodegroup: 0, *)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.111 (mysql-5.6.21 ndb-7.3.7)
[mysqld(API)] 1 node(s)
id=4 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7)
id=5 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7)
说明已经成功
7. 问题
Q: sql节点无法启动“Tablesnot available after 30 seconds. Considerincreasing --ndb-wait-setup value”
A: 数据节点没有全部启动
Q: sql节点启动时: “Unable to lock./ibdata1, error: 11”
A: 已经启动了
Q: 登录sql时:mysql –u root-p
1045 access denied for user ‘root‘@‘localhost‘ using password yes
A: 直接 mysql –u root (需要修改配置文件)
注:欢迎踊跃提出疑问,共同进步!