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 ...
随机推荐
- 如何将xml转为python中的字典
如何将xml转为python中的字典 import cElementTree as ElementTree class XmlListConfig(list): def __init__(self, ...
- Cognos让指定用户不具有删除内容的权限
为了方便用户使用Cognos,现在很多对权限要求不够严格的用户就想到了可以让用户实现匿名登陆,即不登陆系统即可实现访问报表,当然这也仅仅是按照客户的需求,我个人认为一个安全性的数据平台还是需要对登陆. ...
- cognos report上钻下钻报表处理方法(2)
在此之前已经说过了在报表本身单个维度上面的上钻与下钻,本次说的是传递参数追溯到其他报表.比如从部门追溯到部门每一位员工的数据分析, 如图:报表1 点击信托业务一总部跳转到下面的报表2,显示每一位执行经 ...
- ArcGIS安装问题集锦
1. 软件安装 软件下载.安装问题自行解决,否则就不要使用. 2. 常见问题 2.1 许可管理器版本不正确 2013年3月19日 问题一:ArcGIS10安装后,更改许可管理器时,通常,在ArcGIS ...
- 浅谈JavaScript框架设计
在这个js框架随处乱跑的时代,你是否考虑过写一个自己的框架?下面的内容也许会有点帮助. 一个框架应该包含哪些内容? 1.语言扩展 大部分现有的框架都提供了这部分内容,语言扩展应当是以ECMAScrip ...
- JavaScript 之 特殊运算符
一.=== 下面的规则用来判断两个值是否===相等: 首先,== equality 等同,=== identity 恒等. ==, 两边值类型不同的时候,要先进行类型转换,再比 ...
- 微信小程序-开发入门(一)
微信小程序已经火了一段时间了,之前一直也在关注,就这半年的发展来看,相对原生APP大部分公司还是不愿意将主营业务放到微信平台上,以免受制于腾讯,不过就小程序的应用场景(用完即走和二维码分发等)还是很值 ...
- TCP相关面试题总结
1.TCP三次握手过程 wireshark抓包为:(wireshark会将seq序号和ACK自己主动显示为相对值) 1)主机A发送标志syn=1,随机产生seq =1234567的数据包到server ...
- navicat 使用
sql是操作数据库中数据的语句,在不同的数据库中会略有不同,如mysql,postgreSQL,oracle,sqlserver,sqlite等等,但是sql的基础select.insert.upda ...
- 1、redis之安装与配置
下载安装: redis-server.exe redis服务器的daemon启动程序 redis.conf redis配置文件 redis-cli.exe redis命令行操作工具.当然,也可以用te ...