MySQL-Cluster-client-gpl-7.2.13-1.el6.x86_64.rpm
MySQL-Cluster-server-gpl-7.2.13-1.el6.x86_64.rpm
1、管理节点
管理节点需要ndb_mgm和ndb_mgmd,这两个程序在server包中,所以管理节点只需安装server的RPM包。
[root@mysql-mgm ~]# rpm -Uhv --force MySQL-Cluster-server-gpl-7.2.13-1.el6.x86_64.rpm
--force是强制安装,如果不加不能安装,因为系统有些MySQL的文件,造成冲突。
2、数据节点
由于需要ndbd程序,它也在server包中,所以也只需安装server的RPM包。
[root@mysql-d2 ~]# rpm -Uhv --force MySQL-Cluster-server-gpl-7.2.13-1.el6.x86_64.rpm
3、SQL节点
由于它负责访问,所以server和client都要安装
[root@mysql-s2
~]# rpm -Uhv --force MySQL-Cluster-server-gpl-7.2.13-1.el6.x86_64.rpm
[root@mysql-s2
~]# rpm -Uhv --force MySQL-Cluster-client-gpl-7.2.13-1.el6.x86_64.rpm
三、配置
1、管理节点配置过程
[root@mysql-mgm
~]# mkdir /var/lib/mysql-cluster
[root@mysql-mgm
~]# cd /usr/share/mysql/
[root@mysql-mgm
~]# cp config.small.ini /var/lib/mysql-cluster/config.ini
[root@mysql-mgm
~]# cd /var/lib/mysql-cluster
[root@mysql-mgm
~]# vi config.ini
config.ini文件的内容参考如下:
[NDBD
DEFAULT]
NoOfReplicas:
2 #副本数量
DataMemory:
100M #数据内存大小
IndexMemory:
80M #索引内存大小
[MGM
DEFAULT]
PortNumber:
1186 #默认监听端口
[NDB_MGMD]
HostName:
192.168.36.100 #管理节点IP
DataDir:
/var/lib/mysql-cluster
ArbitrationRank:
1
[NDBD]
HostName:
192.168.36.101 #数据节点IP
DataDir:
/usr/share/mysql/data
[NDBD]
HostName:
192.168.36.102
DataDir:
/usr/share/mysql/data #注意在数据节点上创建此目录
[API]
HostName:
192.168.36.103 #SQL节点IP
ArbitrationRank:
2
[API] #这些是为SQL节点预留,
#可以动态加入SQL节点
2、数据节点配置
[root@mysql-d2
~]# cd /usr/share/mysql/
[root@mysql-d2
~]# mv /etc/my.cnf /etc/my.cnf.bak
[root@mysql-d2
~]# cp my-small.cnf /etc/my.cnf
[root@mysql-d2
~]# vi /etc/my.cnf
文件内容参考如下:(重点是红色部分)
[mysqld]
ndbcluster
[mysql_cluster]
ndb-connectstring = 192.168.36.100
3、SQL节点部署
官方文档说直接启动系统配置好的mysql即可,但是启动后,管理节点监控不到,所以按照如下配置,可以连入集群。
首先/etc/my.cnf文件,注意红色字体部分。
[mysqld]
ndbcluster
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#
Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysql_cluster]
ndb-connectstring = 192.168.36.100
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
然后,按照下面步骤执行。
[root@mysql-s2
~]# mkdir /var/run/mysqld
[root@mysql-s2
~]# chown -R mysql:mysql /var/run/mysqld/
启动是有顺序的:管理节点》》数据节点》》SQL节点。
1、管理节点
自己写个脚本,方便启动,执行这个脚本即可。
[root@mysql-mgm ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2、数据节点
[root@mysql-d2 ~]# ndbd --initial
第一次节点启动使用该参数,还有就是备份、恢复后的启动使用这个参数。
一般启动如下:
[root@mysql-d2 ~]# ndbd
3、SQL节点
[root@mysql-s2
~]# /usr/bin/mysqld_safe
131016
19:32:35 mysqld_safe Logging to '/var/log/mysqld.log'.
131016
19:32:35 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
4、查看部署结果
[root@mysql-mgm
~]# ndb_mgm
--
NDB Cluster -- Management Client --
ndb_mgm>
show
Connected
to Management Server at: localhost:1186
Cluster
Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.36.101 (mysql-5.5.31 ndb-7.2.13, Nodegroup: 0,
Master)
id=3 @192.168.36.102 (mysql-5.5.31 ndb-7.2.13, Nodegroup: 0)
[ndb_mgmd(MGM)]
1 node(s)
id=1 @192.168.36.100 (mysql-5.5.31 ndb-7.2.13)
[mysqld(API)] 6 node(s)
id=4 @192.168.36.103 (mysql-5.5.31 ndb-7.2.13)·
id=5 @192.168.36.104 (mysql-5.5.31 ndb-7.2.13)
1、在SQL节点1上执行。
2 使用客户端进行mysql。
[root@mysql-s1
~]# mysql -uroot
Welcome
to the MySQL monitor. Commands end with
; or \g.
Your MySQL connection id is 3
Server
version: 5.5.31-ndb-7.2.13-cluster-gpl MySQL Cluster Community Server (GPL)
Copyright
(c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle
is a registered trademark of Oracle Corporation and/or its
affiliates.
Other names may be trademarks of their respective
owners.
Type
'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
2 查看数据库。
mysql>
show databases;
+--------------------+
|
Database |
+--------------------+
|
information_schema |
|
ctest |
|
mysql |
|
ndbinfo |
|
performance_schema |
|
test |
+--------------------+
6
rows in set (0.00 sec)
2 打开数据库
mysql>
use ctest
Database
changed
2 创建测试表,注意红色字必须加,否则无法使用NDB存储。
mysql>
create table test(count int) engine=NDBCLUSTER;
Query
OK, 0 rows affected (0.53 sec)
2 插入测试数据
mysql>
insert into test values(10);
Query
OK, 1 row affected (0.22 sec)
mysql>
select * from test;
+-------+
|
count |
+-------+
| 10 |
+-------+
1
row in set (0.95 sec)
2、在SQL节点2执行。
2 进入mysql
[root@mysql-s2
~]# mysql -uroot
Welcome
to the MySQL monitor. Commands end with
; or \g.
Your
MySQL connection id is 2
Server
version: 5.5.31-ndb-7.2.13-cluster-gpl MySQL Cluster Community Server (GPL)
Copyright
(c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle
is a registered trademark of Oracle Corporation and/or its
affiliates.
Other names may be trademarks of their respective
owners.
Type
'help;' or '\h' for help. Type '\c' to clear the current input statement.
2 查看数据库信息
mysql>
show databases;
+--------------------+
|
Database |
+--------------------+
|
information_schema |
|
mysql |
|
ndbinfo |
|
performance_schema |
|
test |
+--------------------+
5
rows in set (0.06 sec)
2 SQL节点2第一次访问集群,数据库列表中没有要访问的数据库,需要执行下面命令。
mysql>
create database ctest;
Query
OK, 1 row affected (0.12 sec)
mysql>
use ctest
Reading
table information for completion of table and column names
You
can turn off this feature to get a quicker startup with -A
打开数据库时,与数据节点同步。
Database
changed
2 查询,可以看到在SQL节点1上的操作结果。说明数据保存在数据节点中了。
mysql>
select * from test;
+-------+
|
count |
+-------+
| 10 |
+-------+
1
row in set (0.02 sec)
2 在该SQL节点做插入操作。
mysql>
insert into test values (1);
Query
OK, 1 row affected (0.04 sec)
mysql>
select * from test;
+-------+
|
count |
+-------+
| 10 |
| 1 |
+-------+
2
rows in set (0.00 sec)
3、在SQL节点1上,查看在SQL节点2的操作数据。
mysql>
select * from test;
+-------+
|
count |
+-------+
| 1 |
| 10 |
+-------+
2
rows in set (0.25 sec)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26812308/viewspace-774792/ ,如需转载,请注明出处,否则将追究法律责任。