mysql cluster集群安装全纪录
发布日期:2021-06-30 16:21:36
浏览次数:2
分类:技术文章
本文共 6537 字,大约阅读时间需要 21 分钟。
这里以centos5.8系统、32位cpu(注意不同的系统和cpu要下不同的版本)
参考文档: 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 下载地址: 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 [root@172-1-1-168 ~]# wget [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 [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 [root@172-1-1-54 ~]# wget [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,也能看到数据已经同步。
转载地址:https://kerry.blog.csdn.net/article/details/8751049 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月19日 02时00分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Azkaban2.5环境搭建及测试
2019-05-01
Synchronized与ReentrantLock区别
2019-05-01
机器学习之重头戏-特征预处理
2019-05-01
synchronized底层实现及锁的升级、降级
2019-05-01
Java线程生命周期之旅
2019-05-01
机器学习-简单逻辑回归实现
2019-05-01
如何快速定位JVM相关GC问题
2019-05-01
java线程相关概念之解析
2019-05-01
Python清洗常用工具
2019-05-01
java内存模型及线程案例分析
2019-05-01
小议创建线程的若干方式
2019-05-01
ThreadLocal应用场景分析
2019-05-01
线程池原理及应用之个人心得
2019-05-01
线程池excute方法执行底层过程
2019-05-01
线程池同步异步调用callable和Future
2019-05-01
梯度算法之初见
2019-05-01
解决python安装库较慢的方式
2019-05-01
Maven安装问题总结
2019-05-01
Maven 插件配置,安装配置问题
2019-05-01
PermGen space-永久区内存溢出
2019-05-01