项目进阶 之 集群环境搭建(二)MySQL集群

标签: 项目 集群 环境 | 发表时间:2014-04-25 13:47 | 作者:zs15932616453
出处:http://blog.csdn.net
        上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下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集群的搭建就讲解完毕了,但是单纯的按照这样搭建还有一个缺陷,什么缺陷呢?咱们下次讲解,敬请期待!


作者:zs15932616453 发表于2014-4-25 5:47:17 原文链接
阅读:29 评论:0 查看评论

相关 [项目 集群 环境] 推荐:

项目进阶 之 集群环境搭建(二)MySQL集群

- - CSDN博客推荐文章
        上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容.         MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障.         MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的.

hadoop集群环境的配置

- - ITeye博客
  之前说过,我们的hadoop集群已经搭建起来了,只是具体的步骤还没来得及整理,幸好今天又把流程走了一遍,真的是不做不晓得,一做才发现自己原来什么都忘记得差不多了,在此记录一下搭建hadoop集群的步骤,便于需要的时候看看.   这个配环境的过程真的是比较困难的,我今天搞了一天终于把自己的机器作为datanode连接上了master机器,我还是年前搞过一遍的呢,所以这个还是需要耐心+细心的.

基于docker环境实现Elasticsearch 集群环境

- - 学习日志
最近搭建了es集群的时候,现在需要测试添加一个新的数据节点,项目是使用docker-compose命令来搭建的. 以下基于最新版本 es7.2.0进行. // docker-compose.yaml 集群配置文件. 集群配置了3个master节点,并同时作为数据节点使用,当节点未指定 node.master和node.data的时候,默认值为 true.

Hadoop集群安装&Hbase实验环境搭建

- - CSDN博客云计算推荐文章
1.安装ubuntu10.04操作系统. 安装成功后,系统也会有相应提示:. sudo vi /etc/inetd.conf并加入以下一行. sudo vi /etc/xinetd.conf并加入以下内容:. sudo vi /etc/xinetd.d/telnet并加入以下内容:. 重启机器或重启网络服务sudo /etc/init.d/xinetd restart.

分布式集群环境hadoop、hbase、zookeeper搭建(全)

- - CSDN博客云计算推荐文章
集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:. 三个节点均使用centos 6.3系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同hadoop、hbase、zookeeper目录结构.

MQTT简介Mosquitto桥接及集群环境搭建 - CSDN博客

- -
MQTT v5.0草案中文翻译:. 原创文章如转载,请注明出处(http://blog.csdn.net/hui6075/). MQTT是IBM为物联网等环境定义的一套应用层即时通信协议,通过消息中间件,提供订阅/发布方式通过“主题”为不同设备之间的通信提供解耦. 类似的协议还有XMPP、COAP等,但MQTT协议由于信令种类少、控制信息少、信息承载率高,因而对设备的处理能力和网络环境要求比较低.

亿级日增量的ES线上环境集群部署,上干货!

- -
在生产环境搭建或维护 Elasticsearch 集群和个人搭建集群的小打小闹有非常大的不同. 本文的最佳实践基于每天增量数亿+ 的线上环境. Elasticsearch 和 Lucene 都是 Java 语言编写,这意味着我们必须注意堆内存的设置. Elasticsearch 可用的堆越多,它可用于过滤器(filter)和其他缓存的内存也就越多,更进一步讲可以提高查询性能.

JBoss 系列五十:使用Apache httpd(mod_jk)和JBoss构架高可用集群环境

- - CSDN博客架构设计推荐文章
前面 JBoss 系列二:使用Apache httpd(mod_cluster)和JBoss构架高可用集群环境中我们介绍了企业应用的目的的目的,负载均衡,容错等,并通过Apache httpd(mod_cluster)和JBoss构架高可用集群环境,我们这里在原有的环境中将mod_cluster换成mod_jk,其架构如下图所示:.

Kubernetes集群搭建之企业级环境中基于Harbor搭建自己的私有仓库 - 鬼谷君 - 博客园

- -
企业环境中使用Docker环境,一般出于安全考虑,业务使用的镜像一般不会从第三方公共仓库下载. 企业级环境中基于Harbor搭建自己的安全认证仓库. 官网:https://github.com/vmware/harbor. 简介:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution.

Hadoop环境搭建

- - 统计之都
Author:张丹(Conan). @晒粉丝 http://www.fens.me. @每日中国天气 http://apps.weibo.com/chinaweatherapp. RHadoop实践系列文章. RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析. Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现.