mysql-cluster 环境安装&配置
一、mysql-cluster 的介绍:
1、说心里话mysql-cluster这货性能上是不行的,之前一个同事测试了来的结果是8个主机组成的mysql-cluster性能
上搞不过一个单机的mysql(innodb引擎);这样的性能表现就尴尬了。
2、在功能上这货也不是一完整的,它有各种各样的不支持。
3、从官方表现上看不管是mysql-5.6 还是mysql-5.7 都有与之对应的mysql-cluster版本,但是在mysql-8这一代
变天了不再提供与之对应的mysql-cluster版本了,这个说明什么?说明mysql-cluster这货要GG啦。
4、好吧! mysql-cluster 是什么,是一个不成熟的解决方案! 它的设计思路是把单机mysql中的SQL层 和 引擎层
分离出来,使它们可以单独运行。想想如果多个用于保存数据的引擎能同时在多台主机上运行,这样数据就有冗余
了,同理SQL层的处理也是一样的,mysql-cluster就是通过冗余来提高整个环境的可用性的。还有为了方便管理
mysql-cluster的这若干的主机,mysql还专门开发了一个管理端程序。
5、现在专业一点 mysql-cluster中把主机按它运行的程序不同,逻辑上分成了三类:
1、sql node :运行mysqld 的主机,逻辑上负责保存元数据,处理连接请求。
2、data node :真正保存数据的主机
3、manger node : 用于管理以上两类(sql node ,data node)结点的结点。
6、再送你一张官方的mysql-clustr架构图
二、安装环境的规划:
主机IP地址 角色
10.186.19.19 manager node
10.186.19.18 data node
10.186.19.17 data node
10.186.19.16 sql node
三、下载安装介质:
为了说明mysql-cluster整体架构、也就是说哪个角色要安装什么就可以了、所以在这里选择把安装包下载到10.186.19.16这台主机上
对于其它角色就采用scp的方式把相关的程序复制过去,这样做的好处是对于各个角色要安装什么包就变得非常明显了。
[root@actionsky17 ~]# cd /tmp/
[root@actionsky17 tmp]# wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.5/mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz
四、安装sql node :
# 解压安装包并创建相关目录
cd /tmp/
tar -xvf mysql-cluster-gpl-7.5.-linux-glibc2.-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -s mysql-cluster-gpl-7.5.-linux-glibc2.-x86_64 mysql
mkdir -p /usr/local/mysql/data #增加mysql用户
useradd mysql #初始化sql node
./bin/mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql/data/ #初始化完成后数据目录有如下内容
[root@actionsky16 mysql]# ll /usr/local/mysql/data/
total
-rw-r-----. mysql mysql Oct : auto.cnf
-rw-r-----. mysql mysql Oct : ib_buffer_pool
-rw-r-----. mysql mysql Oct : ibdata1
-rw-r-----. mysql mysql Oct : ib_logfile0
-rw-r-----. mysql mysql Oct : ib_logfile1
drwxr-x---. mysql mysql Oct : mysql
drwxr-x---. mysql mysql Oct : ndbinfo
drwxr-x---. mysql mysql Oct : performance_schema
drwxr-x---. mysql mysql Oct : sys
五、安装data node:
由于data node 只包涵引擎层相关的程序,所以安装也就是把引擎层相关的程序由10.186.19.16 scp 到对应的主机,并以这些程序有
可执行权限就行了
在10.186.19.16(sql node)上执行
[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbd 10.186.19.17:/usr/local/bin/
[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbmtd 10.186.19.17:/usr/local/bin/ [root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbd 10.186.19.18:/usr/local/bin/
[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbmtd 10.186.19.18:/usr/local/bin/
六、安装manger node:
[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndb_mgm* 10.186.19.19:/usr/local/bin/
ndb_mgm % 7926KB .7MB/s :
ndb_mgmd % 17MB .2MB/s :
七:配置sql node 与 data node:
首先不管是sql node 还是 data node 他们和普通的单机一样都是读的/etc/my.cnf 这个配置文件中的配置项。
然而与普通单机不同的是它们的配置文件中额外说明两个问题
1、说明结点以mysql-cluster的方式工作 ndbcluster
2、说明结点对应的manger是谁 ndb-connectstring=manger主机的地址
以下是sql node 和 data node的配置文件样例:
[mysqld]
basedir=/usr/local/mysql/ #mysql的安装路径
datadir=/usr/local/mysql/data #sql node 的相关数据保存的位置
ndbcluster #以mysql-cluster的方式运行
ndb-connectstring=10.186.19.19 #mysql-cluster manager的运行
八:配置manger node:
官方文档中把manger node 的配置文件保存在/var/lib/mysql-cluster/ 这个目录下了,配置文件名叫config.ini
我个人喜欢根据官方文档中的位置保存文件,这样我配置出来的环境就统一了,方便以后的运维。
1、创建保存配置文件的目录&创建配置文件:
mkdir -p /var/lib/mysql-cluster
cd /var/lib/mysql-cluster/
touch config.ini
2、配置文件中的内容如下:
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
ServerPort=2202 [ndb_mgmd]
HostName=10.186.19.19
DataDir=/var/lib/mysql-cluster [ndbd]
HostName=10.186.19.18
NodeId=2
DataDir=/usr/local/mysql/data [ndbd]
HostName=10.186.19.17
NodeId=3
DataDir=/usr/local/mysql/data [mysqld]
HostName=10.186.19.16
九:启动mysql-cluster:
mysql-cluster的启动过程是有一个固定的步骤的
第一步:启动manger node
[root@--- mysql-cluster]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/
第二步:启动data node
分别在两个data node 结点上执行
[root@actionsky18 local]# ndbd --initial --ndb-connectstring=10.186.19.19
-- :: [ndbd] INFO -- Angel connected to '10.186.19.19:1186'
-- :: [ndbd] INFO -- Angel allocated nodeid:
第三步:启动sql node
cd /usr/local/mysql/
./bin/mysqld_safe &
十:检查mysql-cluster的运行情况:
在manger node上执行
[root@--- mysql-cluster]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:
Cluster Configuration
---------------------
[ndbd(NDB)] node(s)
id= @10.186.19.18 (mysql-5.7. ndb-7.5., Nodegroup: , *)
id= @10.186.19.17 (mysql-5.7. ndb-7.5., Nodegroup: ) [ndb_mgmd(MGM)] node(s)
id= @10.186.19.19 (mysql-5.7. ndb-7.5.) [mysqld(API)] node(s)
id= @10.186.19.16 (mysql-5.7. ndb-7.5.)
十一、mysql-cluster安装&配置的一些注意项:
1、--initial 会去删除ndb文件系统中的数据,并重新初始化一下,这样之前的数据就全没了。如果你不小心执行了这个
那你可以准备好跑路了!
2、目前的环境下有在/etc/my.cnf 中指定ndb-connectstring的值,但是ndbd每次都没有去读,如果我强制--defautls-file
的方式要它去读/etc/my.cnf ndbd 还会起不来。这下就尴尬了。
十二、验证一下环境的可用性:
由于在初始化sql node 的时间root并没有测试密码,测试环境下我又是以root身份登录的linux,所以在环境变量正确
的情况下一句mysql命令就能直接进了
mysql> create table t(id int ,x int) engine=ndbcluster;
Query OK, 0 rows affected (0.15 sec) mysql> insert into t(id,x) values(110,119);
Query OK, 1 row affected (0.01 sec) mysql> select * from t;
+------+------+
| id | x |
+------+------+
| 110 | 119 |
+------+------+
1 row in set (0.00 sec) mysql> show create table t;
+-------+-----------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------+
| t | CREATE TABLE `t` (
`id` int(11) DEFAULT NULL,
`x` int(11) DEFAULT NULL
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 |
+-------+-----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
----
mysql-cluster 环境安装&配置的更多相关文章
- 双机冗余备份和负载均衡策略(Mysql Cluster入门安装配置指南)
MySQL Cluster 是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.MySQL Clus ...
- Linux下xampp集成环境安装配置方法 、部署bugfree及部署禅道
XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.XAMPP 是一个易于安装且包含 MySQL.PHP 和 Perl 的 Apache 发行版.XAMPP 的确非 ...
- Windows 8.1下 MySQL绿色版安装配置与使用
原文:Windows 8.1下 MySQL绿色版安装配置与使用 Mysql-5.6.17-winx64操作步骤: 一.安装MySQL数据库 1.下载. 下载地址:http://downloads.my ...
- C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装
原文:C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装 要求: JDK.Mysql.Tomcat三者制作成一个安装包, 不能单独安装,安装过程不显示三者的界面, 安装完成要配置 ...
- 一个电脑的重装到java开发环境安装配置的全过程
刚拿到一台别人用过的电脑.看着c盘爆满,而且用了还是windows7操作系统,强迫症发作马上就准备重装系统. 之前换固态使用wepe制作U盘启动盘装系统的步骤和过程全部忘记的,贼尴尬. 同事都看不过眼 ...
- Sencha Toucha 2 —1.环境安装配置、在线打包、离线打包
环境安装配置 1. 下载 1.1 Sencha Touch 下载 http://cdn.sencha.com/touch/sencha-touch-2.2.1-gpl.zip 1 ...
- [转载]SharePoint 2013测试环境安装配置指南
软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企业版 Office Web Apps 2013 备注: ...
- RabbitMQ Cluster群集安装配置
#RabbitMQ Cluster群集安装配置 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ########## ...
- Windows7 x64 跨平台开发环境安装配置
======================================================================= Windows7 x64 跨平台开发环境安装配置 201 ...
- QT开发环境安装配置教程
QT开发环境安装配置教程 分类: QT2012-11-29 23:31 35366人阅读 评论(12) 收藏 举报 Linux版的直接在ubutnu软件中心输入QT,安装响应的Designer,Cre ...
随机推荐
- 2013级C++第14周(春)项目——多态性、虚函数和抽象类
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 阅读程序1.阅读.改动和执行关于交通 ...
- 如何:使用TreeView控件实现树结构显示及快速查询
本文主要讲述如何通过使用TreeView控件来实现树结构的显示,以及树节点的快速查找功能.并针对通用树结构的数据结构存储进行一定的分析和设计.通过文本能够了解如何存储层次结构的数据库设计,如何快速使用 ...
- 【Java VisualVM】使用 VisualVM 进行性能分析及调优
转载:https://blog.csdn.net/lmb55/article/details/79267277 一.概述 开发大型 Java 应用程序的过程中难免遇到内存泄露.性能瓶颈等问题,比如文件 ...
- c语言 多重排序
经过了两天,终于会了. #include<stdio.h> #include<string.h> struct A { char name[100]; int gread; } ...
- 安全删除U盘或其他硬件 unlocker的使用方法
1 假如我在优盘里新建一个文档,并且正在读写文件. 点击右下角的安全删除的时候弹出如下对话框. 2 在该优盘上右击,Unlocker,弹出的对话框显示NOTEPAD.EXE正在使用. 3 在确保左侧是 ...
- 消息队列的使用场景(转载c)
作者:ScienJus链接:https://www.zhihu.com/question/34243607/answer/58314162来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
- 如何不使用pthread_cancel而杀死线程
http://www.cnblogs.com/no7dw/archive/2012/09/27/2705847.html During the time I use standalone cross ...
- ElasticSearch异常归纳(能力工场小马哥)
异常1: can not run elasticsearch as root [WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-2] ...
- Linux不用使用软件把纯文本文档转换成PDF文件的方法
当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些.比如,PDF更适合打印,因为PDF文档有预定义布局.除此之外,还可以减少文档被意外修改的风险. 要将文本文件转换成PDF格式,你要按照 ...
- Linux下FTP命令的使用方法
FTP> ? 显示 ftp 命令说明.? 与 help 相同. 格式:? [command] 说明:[command]指定需要帮助的命令名称.如果没有指定 command,ftp 将显示全部命令 ...