一、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 环境安装&配置的更多相关文章

  1. 双机冗余备份和负载均衡策略(Mysql Cluster入门安装配置指南)

    MySQL Cluster 是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.MySQL Clus ...

  2. Linux下xampp集成环境安装配置方法 、部署bugfree及部署禅道

    XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.XAMPP 是一个易于安装且包含 MySQL.PHP 和 Perl 的 Apache 发行版.XAMPP 的确非 ...

  3. Windows 8.1下 MySQL绿色版安装配置与使用

    原文:Windows 8.1下 MySQL绿色版安装配置与使用 Mysql-5.6.17-winx64操作步骤: 一.安装MySQL数据库 1.下载. 下载地址:http://downloads.my ...

  4. C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装

    原文:C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装 要求: JDK.Mysql.Tomcat三者制作成一个安装包, 不能单独安装,安装过程不显示三者的界面, 安装完成要配置 ...

  5. 一个电脑的重装到java开发环境安装配置的全过程

    刚拿到一台别人用过的电脑.看着c盘爆满,而且用了还是windows7操作系统,强迫症发作马上就准备重装系统. 之前换固态使用wepe制作U盘启动盘装系统的步骤和过程全部忘记的,贼尴尬. 同事都看不过眼 ...

  6. Sencha Toucha 2 —1.环境安装配置、在线打包、离线打包

    环境安装配置        1. 下载 1.1     Sencha Touch 下载 http://cdn.sencha.com/touch/sencha-touch-2.2.1-gpl.zip 1 ...

  7. [转载]SharePoint 2013测试环境安装配置指南

    软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企业版 Office Web Apps 2013 备注: ...

  8. RabbitMQ Cluster群集安装配置

    #RabbitMQ Cluster群集安装配置 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ########## ...

  9. Windows7 x64 跨平台开发环境安装配置

    ======================================================================= Windows7 x64 跨平台开发环境安装配置 201 ...

  10. QT开发环境安装配置教程

    QT开发环境安装配置教程 分类: QT2012-11-29 23:31 35366人阅读 评论(12) 收藏 举报 Linux版的直接在ubutnu软件中心输入QT,安装响应的Designer,Cre ...

随机推荐

  1. (转)在ios android设备上使用 Protobuf (使用dll方式)

    自:http://game.ceeger.com/forum/read.php?tid=13479 如果你的工程可以以.Net 2.0 subset模式运行,请看这个帖子中的方法. 地址:http:/ ...

  2. System.Windows.Forms.Control : Component, IOleControl, IOleObject, IOleInPlaceObject, IOleInPlaceActiveObject....

    #region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ...

  3. [Backbone]3. More detail on View

    Change the AppointmentView to have a top-level li tag (instead of the default div tag). var Appointm ...

  4. Android网络:开发浏览器(二)——功能完善之书签功能

    经过上述的编写,基本的功能已经完成了,不过工具栏里面基本还是一片空白,只有一个刷新的功能,现在咱们就先完善这些功能(之前有朋友说来点图,那么这次我会截些图更好的来描述). 既然是浏览器,怎么能没有书签 ...

  5. C语言的角落——C之很常使用特性(一)

    本文搜集整理了一些之前博客中没有提到的,C语言不经常使用的特性,算是对C系列的最后一次补充. 对C语言有兴趣的朋友能够浏览一下,查漏补缺. 变长參数列表 <stdarg.h> 头文件定义了 ...

  6. Stage3d 由浅到深理解AGAL的管线vertex shader和fragment shader || 简易教程 学习心得 AGAL 非常非常好的入门文章

    Everyday Stage3D (一) Everyday Stage3D (二) Triangle Everyday Stage3D (三) AGAL的基本概念 Everyday Stage3D ( ...

  7. eclipse 如何对maven项目进行打包?

      eclipse 如何对maven项目进行打包? CreateTime--2018年4月19日22:02:50 Author:Marydon 1.方式一:使用eclipse中的maven插件(命令) ...

  8. 500 OOPS: chroot

    FTP登录时报错: 1.500 OOPS: chroot 解决方法:关闭SElinux 2.500 OOPS: vsftpd: refusing to run with writable root i ...

  9. 升级openssh基于openssl

    OpenSSH is the premier connectivity tool for remote login with the SSH protocol. It encrypts all tra ...

  10. login.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...