[原]项目进阶 之 集群环境搭建(二)MySQL集群
上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容。
1、MySQL集群简介
MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。
MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的。MySQL群集中有三种节点:管理节点、数据节点和SQL节点。群集中的某计算机可能是某一种节点,也可能是两种或三种节点的集合。这三种节点只是在逻辑上的划分,所以它们不一定和物理计算机是一一对应的关系。
管理节点(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。
数据节点用于存储数据。
SQL节点跟一般的MySQL服务器是一样的,我们可以通过它进行SQL操作。
下图中画出了三种群集节点及应用程序间的关系:
2、MySQL集群安装配置
下载MySQL集群:http://dev.mysql.com/downloads/cluster/
mysql-cluster-gpl-7.3.5-winx64.zip:
http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.5-winx64.zip
mysql-cluster-gpl-7.3.5-win32.zip:
http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.5-win32.zip
1)、MySQL简介
首先找三台电脑,或者是开三个虚拟机,管理节点部署在一台机子上,其他两台每台都部署一个数据节点和一个SQL节点。这里以两台机子举例,其中一台(IP为192.168.24.16)部署管理节点、数据节点和SQL节点,另一台(IP为192.168.24.43)部署数据节点和SQL节点。
实际应用中,不要将管理节点跟数据节点部署到一台机子上,因为如果数据节点宕机会导致管理节点不可用,同时整个MySQL群集也就都不可用了。所以一个MySQL群集理想情况下至少有三台服务器,将管理节点单独放到一台服务器上。这里以两台举例,只是为了说明三种节点的配置启动方法。
2)、配置管理节点
1、在IP为192.168.24.16的主机的C盘中新建文件夹mysql,然后在此文件夹下新建子目录bin和mysql-cluster,再将安装包中的bin目录下的ndb_mgm.exe和ndb_mgmd.exe拷贝到C:\mysql\bin下。在目录C:\mysql\bin下新建cluster-logs目录、config.ini文件和my.ini文件。
2、config.ini文件内容如下:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
# Number of replicas
NoOfReplicas=2
DataDir=c:/mysqlcluster/datanode/mysql/bin/cluster-data
# Directory for each data node's data files
# Memory allocated to data storage
DataMemory=80M
# Memory allocated to index storage
IndexMemory=18M
# For DataMemory and IndexMemory, we have used the
# default values. [ndb_mgmd]
# Management process options:
# Hostname or IP address of management node
HostName=192.168.24.16
# Directory for management node log files
DataDir=C:/mysql/bin/cluster-logs [ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
# Hostname or IP address
HostName=192.168.24.16 [ndbd]
# Options for data node "B":
# Hostname or IP address
HostName=192.168.24.43 [mysqld]
# SQL node options:
# Hostname or IP address
HostName=192.168.24.16 [mysqld]
# SQL node options:
# Hostname or IP address
HostName=192.168.24.43
3、my.ini中的内容如下:
[mysql_cluster]
# Options for management node process
config-file=C:/mysql/bin/config.ini
3)、配置数据节点
1、在IP为192.168.24.16的主机中新建文件夹C:\mysqlcluster\datanode\mysql,然后在此文件夹中继续新建子目录bin和cluster-data,bin下再建一个子目录也叫cluster-data。
2、将安装包data目录下的所有文件拷贝到C:\mysqlcluster\datanode\mysql\cluster-data下
3、将安装包中bin目录下的ndbd.exe拷贝到C:\mysqlcluster\datanode\mysql\bin下,并在C:\mysqlcluster\datanode\mysql中新建my.ini文件,文件内容为:
[mysql_cluster]
# Optionsfor data node process:
#location of management server
ndb-connectstring=192.168.24.16
注:因为数据节点的配置是一样的,所以我们可以直接将192.168.24.16主机中的文件夹C:\mysqlcluster拷贝到192.168.24.43主机的C盘下。
4)、配置SQL节点
1、在192.168.24.16主机的C:\mysqlcluster下新建子目录sqlnode,在C:\mysqlcluster\sqlnode下新建子目录mysql,将安装包文件解压到mysql目录下,然后在C:\mysqlcluster\sqlnode\mysql下新建my.ini文件,文件内容为:
[mysqld]
# Options for mysqld process:
# run NDB storage engine
ndbcluster
# location of management server
ndb-connectstring=192.168.24.16
2、将my-default.ini 文件删除或更名为my-default.ini.bak
注:因为SQL节点的配置也是一样的,所以我们可以直接将192.168.24.16主机中的文件夹C:\mysqlcluster\sqlnode文件夹整个拷贝到192.168.24.43主机的C盘下。
3、启动MySQL Cluster
1)简介
在启动MySQL Cluster之前,首先要做的是保证每个SQL节点上的MySQL服务能够启动成功,并为每个SQL节点进行相关权限的分配以保证能够远程登录访问。然后依次启动三种节点。三种节点服务启动时,一定要按照先启动管理节点,后启动数据节点,再启动SQL节点的顺序进行。
2)、启动MySQL服务
1、进入C:\mysqlcluster\sqlnode\mysql\bin目录下,使用mysqld –install安装MySQL服务
2、使用net start mysql命令启动MySQL服务
3)配置MySQL远程连接
1、进入C:\mysqlcluster\sqlnode\mysql\bin目录下,使用mysql –uroot –p,然后输入密码,设置root用户密码。
注:第一次输入的密码,即默认设置为root密码。
2、切换到mysql数据库,输入以下命令,为root用户分配远程连接的相关权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
4)、启动管理节点
1、在192.168.24.16主机中打开命令行窗口,切到C:\mysql\bin目录,输入:
ndb_mgmd -f config.ini --configdir=C:\mysql\mysql-cluster
回车,管理节点服务就启动了,命令行上可能没有任何提示信息,可以打开C:\mysql\bin\cluster-logs\ndb_1_cluster.log日志文件查看启动信息。
注意,此命令行窗口不能关闭,除非你想停止服务。
2、也可以将其做成服务,在命令行中输入:
ndb_mgmd --install=ndb_mgmd -f config.ini --configdir=C:\mysql\mysql-cluster
5)、启动数据节点
1、在192.168.24.16主机中打开新命令行窗口,切到C:\mysqlcluster\datanode\mysql\bin,输入:
ndbd
2、也可以将其做成服务,在命令行中输入:
ndbd --install=ndbd
3、以相同的方法在其他数据节点,即192.168.24.43中启动数据节点服务。
4、在192.168.24.16主机中打开新命令行窗口,切到目录C:\mysql\bin,输入:
ndb_mgm
回车,然后再输入:
ALL STATUS
回车,就可以查看数据节点的连接信息了。
6)、启动SQL节点
1、在192.168.24.16主机中打开新命令行窗口,切到C:\mysqlcluster\sqlnode\mysql\bin,输入:
mysqld --console
回车,SQL节点启动。
2、也可以将其做成服务,输入:
mysqld -install mysql
3、以相同的方法在其他SQL节点,即192.168.24.43中启动SQL节点。
4、想要查看SQL节点的启动情况可以在192.168.1.10主机中同样打开新命令行,输入:
ndb_mgm
回车,再输入:
SHOW
回车,就可以看到SQL节点的连接情况了。
4、测试MySQL Cluster
1)、在任一SQL结点,即192.168.24.16主机上新创建一个数据库myDB,可以看到其他SQL结点,即192.168.24.43均创建了一个MyDB数据库
2)、在任一SQL结点,即192.168.24.16主机上的myDB中使用
create table student (id int(2)) engine=ndbcluster;
新建一个student表,可以看到其他SQL结点,即192.168.24.43均在myDB数据库中创建了一个student表
3)、在任一SQL结点,即192.168.24.16主机上的myDB中的student表插入几条数据之后,可以看到其他SQL结点,即192.168.24.43均作了相关的变化
注:与没有使用 Cluster的MySQL相比,在MySQL Cluster内操作数据的方式没有太大的区别。执行这类操作时应记住两点:
1、表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。
2、另外还请记住,每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含 键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。
到此为止关于MySQL集群的搭建就讲解完毕了,但是单纯的按照这样搭建还有一个缺陷,什么缺陷呢?咱们下次讲解,敬请期待!
[原]项目进阶 之 集群环境搭建(二)MySQL集群的更多相关文章
- [原]项目进阶 之 持续构建环境搭建(三)Maven环境搭建
上次的博文项目进阶 之 持续构建环境搭建(二)Nexus私服器中,我们搭建了一个Nexus的maven私服,这次我们来重点讲解一下Maven的安装和配置.这里说明一下这次的环境搭建,比较基础,但却非常 ...
- [原]项目进阶 之 持续构建环境搭建(二)Nexus私服器
上一篇博文项目进阶 之 持续构建环境搭建(一)架构中,我们大致讲解了一下本系列所搭建环境的基本框架,这次开始我们进入真正的环境搭建实战.重点不在于搭建的环境是否成功和完善,而是在搭建过程中充分认识到每 ...
- [原]项目进阶 之 持续构建环境搭建(四)Jenkins环境搭建
在之前的几篇文章中,我给大家分别介绍了这次的持续化构建环境搭建的相关前提内容.如果说前面的文章都是小菜的话,那么今天的这篇文章就是我们这个系列文章的主菜. 1.前提 安装jenkins需要安装JDK. ...
- [置顶] 项目进阶 之 持续构建环境搭建(二)Nexus私服器
上一篇博文项目进阶 之 持续构建环境搭建(一)架构中,我们大致讲解了一下本系列所搭建环境的基本框架,这次开始我们进入真正的环境搭建实战.重点不在于搭建的环境是否成功和完善,而是在搭建过程中充分认识到每 ...
- hadoop集群环境搭建之zookeeper集群的安装部署
关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...
- Spark集群环境搭建——部署Spark集群
在前面我们已经准备了三台服务器,并做好初始化,配置好jdk与免密登录等.并且已经安装好了hadoop集群. 如果还没有配置好的,参考我前面两篇博客: Spark集群环境搭建--服务器环境初始化:htt ...
- Java+大数据开发——Hadoop集群环境搭建(二)
1. MAPREDUCE使用 mapreduce是hadoop中的分布式运算编程框架,只要按照其编程规范,只需要编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序 2. Demo开发--wo ...
- ZooKeeper 介绍及集群环境搭建
本篇由鄙人学习ZooKeeper亲自整理的一些资料 包括:ZooKeeper的介绍,我们要学习ZooKeeper的话,首先就要知道他是干嘛的对吧. 其次教大家如何去安装这个精巧的智慧品! 相信你能研究 ...
- ZooKeeper 系列(二)—— Zookeeper单机环境和集群环境搭建
一.单机环境搭建 1.1 下载 1.2 解压 1.3 配置环境变量 1.4 修改配置 1.5 启动 1. ...
- ZooKeeper —— 单机环境和集群环境搭建
一.单机环境搭建 1.1 下载 下载对应版本Zookeeper,这里我下载的版本3.4.14.官方下载地址:https://archive.apache.org/dist/zookeeper/ # w ...
随机推荐
- SVN与TortoiseSVN实战:冲突详解(一)
硬广:<SVN与TortoiseSVN实战>系列已经写了三篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,第二篇<SVN与TortoiseSVN实战:标签 ...
- iptable防火墙配置
/etc/sysconfig/iptables /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save} ipta ...
- WF4 持久化 <第四篇>
一.基础示例 WF4 默认支持SQLServer的持续化,首先要执行目录C:\Windows\Microsoft.NET\Framework\v4.0.30319\SQL\en下的脚本: SqlPer ...
- python3.5在print和input上的几个变化
1. 在python3.5中使用print,打印内容必须用括号()括起来.python2.7中可以不用括号,如果你加了括号,代码在python2.7中也是可以正常运行的. python3.5 exam ...
- ASP.NET的SEO:使用.ashx文件——排除重复内容
本系列目录 不同的链接指向的页面如果具有大量相同的内容,这种现象就会被称为"重复内容",如果一个网站的重复内容很多,搜索引擎就会认为这个网站的价值不高.所以我们应尽量避免各种重复内 ...
- xdotool-linux下的按键精灵
这是我在ST写的用来自动打开机顶盒的脚本 #!/bin/bash init_stb() { xdotool type "telnet 10.80.117.$1" xdotool k ...
- sender是什么意思C#
/// <summary> /// sender就是事件发起者,e存储事件发起者的一些参数 /// 例如: /// private void button1_Click(object se ...
- Winform主窗体的设置
软件必然涉及到一个主窗体MainForm,下面介绍一下几个简单的属性设置,可能比较有用 (1)icon,当然是咱们软件的图标了,设置上去即可 (2)isMdiContainer,这个比较重要了哦,必须 ...
- dede 单表模型动态浏览设置 arclistsg arc.sglistview.class.php
比如,分类信息,内容页默认都是生成静态的,如果有需要设为动态访问的,可以参考如下方法: arclistsg 标签,单表独立模型的文档列表调用标记 方法一: 在arclist标签使用中,其对应主表ded ...
- Learning Scrapy笔记(一)- Scrapy简单介绍
Scrapy简述 Scrapy十一个健壮的,用来从互联网上抓取数据的web框架,Scrapy只需要一个配置文件就能组合各种组件和配置选项,并且Scrapy是基于事件(event-based)的架构,使 ...