免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 16075 | 回复: 14
打印 上一主题 下一主题

【分享】mysql cluster集群安装全纪录 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-18 16:42 |只看该作者 |倒序浏览
本帖最后由 chinafenghao 于 2013-03-19 10:27 编辑

这里以centos5.8系统、32位cpu(注意不同的系统和cpu要下不同的版本)

参考文档:http://starcat.dp.ua/doc/mysql-5.0/mysql-cluster.html

5个安装软件包:

MySQL-Cluster-gpl-client-7.1.24-1.rhel5.i386.rpm

MySQL-Cluster-gpl-management-7.1.24-1.rhel5.i386.rpm

MySQL-Cluster-gpl-server-7.1.24-1.rhel5.i386.rpm

MySQL-Cluster-gpl-storage-7.1.24-1.rhel5.i386.rpm

MySQL-Cluster-gpl-tools-7.1.24-1.rhel5.i386.rpm

下载地址:http://www.mysql.com/downloads/cluster/7.1.html

3台centos服务器:

SQL节点(mysqld): 172.1.1.54

数据节点(ndbd): 172.1.1.55

管理节点(ndb_mgmd): 172.1.1.168

最好按以下的安装顺序安装:首先是管理节点,然后是数据节点,最后是SQL节点。


一、管理节点安装:

[root@172-1-1-168 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-168 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-168 ~]# rpm -ivh MySQL-Cluster-gpl-management-7.1.24-1.rhel5.i386.rpm

[root@172-1-1-168 ~]# rpm -ivh MySQL-Cluster-gpl-tools-7.1.24-1.rhel5.i386.rpm

[root@172-1-1-168 ~]# mkdir /var/lib/mysql-cluster

[root@172-1-1-168 ~]# vim /var/lib/mysql-cluster/config.ini

[ndbd default]
NoOfReplicas=1
DataMemory=80M
IndexMemory=18M

[tcp default]
SendBufferMemory=2M
ReceiveBufferMemory=2M

[NDB_MGMD DEFAULT]
PortNumber=1186
Datadir=/var/lib/mysql-cluster

[ndb_mgmd]
NodeId=1
HostName=172.1.1.168

[ndbd]
NodeId=2
HostName=172.1.1.55
datadir=/var/lib/mysql-data

[mysqld]
NodeId=3
HostName=172.1.1.54

//启动管理节点
[root@172-1-1-168 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql-5.1.63 ndb-7.1.24

这样管理节点就安装成功了!
注意:NoOfReplicas的数字要和数据节点的数量一样!
此外安装时如果碰到以下问题:
package MySQL-Cluster-gpl-management-7.1.24-1.rhel5.i386 is already installed
可以用下面办法解决:
[root@172-1-1-168 ~]# rpm -qa | grep -i '^mysql-'
MySQL-Cluster-gpl-management-7.1.24-1.rhel5
[root@172-1-1-168 ~]# rpm --nodeps -ev MySQL-Cluster-gpl-management-7.1.24-1.rhel5


二、数据节点安装:

[root@172-1-1-55 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-55 ~]# rpm -ivh MySQL-Cluster-gpl-storage-7.1.24-1.rhel5.i386.rpm

[root@172-1-1-55 ~]# mkdir /var/lib/mysql-data

[root@172-1-1-55 ~]# chmod 0777 /var/lib/mysql-data -R

[root@172-1-1-55 ~]# vim /etc/my.cnf

[mysqld]
max_connections = 100
slow_query_log = /var/lib/mysql-cluster/slow_query.log
long_query_time = 1
datadir = /var/lib/mysql-cluster
ndbcluster
ndb-connectstring = 172.1.1.168:1186

[mysql_cluster]
ndb-connectstring = 172.1.1.168:1186

//启动数据节点
[root@172-1-1-55 ~]# ndbd --initial
2012-11-13 00:45:47 [ndbd] INFO -- Angel connected to '172.1.1.168:1186'
2012-11-13 00:45:47 [ndbd] INFO -- Angel allocated nodeid: 2

这样存储节点就安装成功了!
注意:(网上这么说未验证)ndbd --initial 不能同时在所有数据节点机器上执行,否者会删除所有数据.即该命令只能在其中一台数据节点中执行!
安装后第一次启动数据节点时要加上--initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时!


三、SQL节点的安装:

[root@172-1-1-54 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-54 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-54 ~]# rpm -ivh MySQL-Cluster-gpl-server-7.1.24-1.rhel5.i386.rpm

[root@172-1-1-54 ~]# rpm -ivh MySQL-Cluster-gpl-client-7.1.24-1.rhel5.i386.rpm --nodeps --force

[root@172-1-1-54 ~]# vim /etc/my.cnf

[mysqld]
ndbcluster
ndb-connectstring=172.1.1.168:1186

[mysql_cluster]
ndb-connectstring=172.1.1.168:1186

//启动SQL节点
[root@172-1-1-54 ~]# mysqld_safe
121112 23:47:25 mysqld_safe Logging to '/var/lib/mysql/172-1-1-168.lightspeed.hstntx.sbcglobal.net.err'.
121112 23:47:26 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
121112 23:48:01 mysqld_safe mysqld from pid file /var/lib/mysql/172-1-1-168.lightspeed.hstntx.sbcglobal.net.pid ended

这样SQL节点就安装成功了!
这个节点需要关闭1186和3306端口的防火墙(网上这么说但我未处理也能启动成功)!


四、验证各节点:

在管理节点的机子下(172.1.1.168)

[root@172-1-1-168 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 1 node(s)
id=2 @172.1.1.55 (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.1.1.168 (mysql-5.1.63 ndb-7.1.24)

[mysqld(API)] 1 node(s)
id=3 @172.1.1.54 (mysql-5.1.63 ndb-7.1.24)

如果出现上面的信息说明全部安装成功了!
如果出现not connected, accepting connect from any host是节点没有启动。
如果出现mysql-5.1.63 ndb-7.1.24, starting, Nodegroup: 0是数据节点已启动但sql节点未启动。
如何你的配置都没有错的话,那可能和你的防火墙设置有关!


五、动态更新节点

1、首先关闭全部ndb和sql节点:
注意关闭顺序:首先是SQL节点,然后是数据节点,最后是管理节点。
sql节点在sql节点上执行:
[root@172-1-1-54 ~]# service mysql stop
Shutting down MySQL.... [确定]
停止sql节点有点慢,不要用/etc/init.d/mysql restart。
ndb节点在管理节点上执行:
[root@172-1-1-168 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> all stop
Executing STOP on all nodes.
Node 2: Cluster shutdown initiated
Node 2: Node shutdown completed.
NDB Cluster has shutdown.
注意不能停止单个(网上说可以但本人尝试失败),否则会报如下错误:
Node 2: Node shutdown aborted
Shutdown failed.
* 2002: Stop failed
* Node shutdown would cause system crash: Permanent error: Application error
最后关闭管理节点!下面1 stop表示关闭管理节点,因为管理节点NodeId是1。

[root@172-1-1-168 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> 1 stop
Node 1 has shutdown.
Disconnecting to allow Management Server to shutdown

ndb_mgm> exit;
2、紧接着安装新的SQL节点和数据节点!
在172.1.1.55上同样执行上面“二、SQL节点的安装”的命令!
在172.1.1.54上同样执行上面“三、数据节点安装”的命令!
3、接下来就是重启各节点:
注意启动顺序:首先是管理节点,然后是数据节点,最后是SQL节点。
[root@172-1-1-168 ~]# vim /var/lib/mysql-cluster/config.ini

[ndbd]
NodeId=4
HostName=172.1.1.54
datadir=/var/lib/mysql-data

[mysqld]
NodeId=5
HostName=172.1.1.55

[root@172-1-1-168 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --reload
MySQL Cluster Management Server mysql-5.1.63 ndb-7.1.24

//启动数据节点
[root@172-1-1-55 ~]# ndbd --initial
2012-11-13 00:45:47 [ndbd] INFO -- Angel connected to '172.1.1.168:1186'
2012-11-13 00:45:47 [ndbd] INFO -- Angel allocated nodeid: 2

//启动SQL节点
[root@172-1-1-54 ~]# mysqld_safe
121112 23:47:25 mysqld_safe Logging to '/var/lib/mysql/172-1-1-168.lightspeed.hstntx.sbcglobal.net.err'.
121112 23:47:26 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
121112 23:48:01 mysqld_safe mysqld from pid file /var/lib/mysql/172-1-1-168.lightspeed.hstntx.sbcglobal.net.pid ended

这样就动态更新节点成功了!
注意:修改NoOfReplicas的数字以保持和数据节点的数量一致!
都做完了在管理节点上show一下看看结果!如果不生效的话可能要考虑重启服务器!
[root@172-1-1-168 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @172.1.1.55 (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0, Master)
id=4 @172.1.1.54 (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.1.1.168 (mysql-5.1.63 ndb-7.1.24)

[mysqld(API)] 2 node(s)
id=3 @172.1.1.54 (mysql-5.1.63 ndb-7.1.24)
id=5 @172.1.1.55 (mysql-5.1.63 ndb-7.1.24)


六、同步测试

从SQL节点172-1-1-54登录,创建数据库和表,进行简单测试。

mysql> create database yjzzjtest;

mysql> use yjzzjtest;
Database changed

mysql> create table yjzzj(id int,name varchar(10)) engine=ndb;

mysql> insert into yjzzj values(1,'rschome.com');

mysql> select * from yjzzj;
+------+------------+
| id | name |
+------+------------+
| 1 | rschome.com |
+------+------------+
1 row in set (0.01 sec)

登陆SQL节点172-1-1-168,查看效果,库,表和数据已经同步。

从B节点插入一条数据,同样登陆A,也能看到数据已经同步。

评分

参与人数 2可用积分 +12 收起 理由
ruochen + 2 赞一个!
chinafenghao + 10 很给力!

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2013-03-20 09:47 |只看该作者
写的挺详细的,谢谢分享!

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
3 [报告]
发表于 2013-03-20 11:36 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2013-03-21 09:30 |只看该作者
这样的教程好  谢谢分享

论坛徽章:
1
申猴
日期:2014-04-30 14:15:12
5 [报告]
发表于 2013-03-21 10:35 |只看该作者
谢谢分享

论坛徽章:
0
6 [报告]
发表于 2013-03-22 12:34 |只看该作者
楼主很强大!

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
7 [报告]
发表于 2013-03-22 14:46 |只看该作者
loveyuqing 发表于 2013-03-22 12:34
楼主很强大!


有什么问题么?

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
8 [报告]
发表于 2013-03-27 09:15 |只看该作者
本帖最后由 fengyun530 于 2013-03-27 09:16 编辑

   请教下,系统是centos5.8.
   那么楼主在选择Select Platform: 的时候,应该是选择了:Oracle & Red Hat Linux 4 & 5 .这个吧!
   目前是MySQL-Cluster-gpl-test-7.1.26-1.rhel5.i386.rpm 而且底下有20多个对应选项供下载,不过看倒数第二组数字不是i386(32位)就是x86_64(64位).

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
9 [报告]
发表于 2013-03-28 19:41 |只看该作者
写得不错,赞一个!

论坛徽章:
0
10 [报告]
发表于 2013-04-08 14:44 |只看该作者
最近有空了也测试下,谢谢分享。呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP