search
HomeDatabaseMysql Tutorial项目进阶 之 集群环境搭建(2)MySQL集群

项目进阶 之 集群环境搭建(二)MySQL集群 上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容。 1、MySQL集群简介 MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对

项目进阶 之 集群环境搭建(二)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集群的搭建就讲解完毕了,但是单纯的按照这样搭建还有一个缺陷,什么缺陷呢?咱们下次讲解,敬请期待!


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
分享PyCharm项目打包的简易方法分享PyCharm项目打包的简易方法Dec 30, 2023 am 09:34 AM

简单易懂的PyCharm项目打包方法分享随着Python的流行,越来越多的开发者使用PyCharm作为Python开发的主要工具。PyCharm是功能强大的集成开发环境,它提供了许多方便的功能来帮助我们提高开发效率。其中一个重要的功能就是项目的打包。本文将介绍如何在PyCharm中简单易懂地打包项目,并提供具体的代码示例。为什么要打包项目?在Python开发

PyCharm实用技巧:将项目转换为可执行EXE文件PyCharm实用技巧:将项目转换为可执行EXE文件Feb 23, 2024 am 09:33 AM

PyCharm是一款功能强大的Python集成开发环境,提供了丰富的开发工具和环境配置,让开发者能够更高效地编写和调试代码。在使用PyCharm进行Python项目开发的过程中,有时候我们需要将项目打包成可执行的EXE文件,以便在没有安装Python环境的计算机上运行。本文将介绍如何使用PyCharm将项目转换为可执行的EXE文件,同时给出具体的代码示例。首

制作 iPhone 上 iOS 17 提醒应用程序中的购物清单的方法制作 iPhone 上 iOS 17 提醒应用程序中的购物清单的方法Sep 21, 2023 pm 06:41 PM

如何在iOS17中的iPhone上制作GroceryList在“提醒事项”应用中创建GroceryList非常简单。你只需添加一个列表,然后用你的项目填充它。该应用程序会自动将您的商品分类,您甚至可以与您的伴侣或扁平伙伴合作,列出您需要从商店购买的东西。以下是执行此操作的完整步骤:步骤1:打开iCloud提醒事项听起来很奇怪,苹果表示您需要启用来自iCloud的提醒才能在iOS17上创建GroceryList。以下是它的步骤:前往iPhone上的“设置”应用,然后点击[您的姓名]。接下来,选择i

react启动项目报错怎么办react启动项目报错怎么办Dec 27, 2022 am 10:36 AM

react启动项目报错的解决办法:1、进入项目文件夹,启动项目并查看报错信息;2、执行“npm install”或“npm install react-scripts”命令;3、执行“npm install @ant-design/pro-field --save”命令。

基于开源的 ChatGPT Web UI 项目,快速构建属于自己的 ChatGPT 站点基于开源的 ChatGPT Web UI 项目,快速构建属于自己的 ChatGPT 站点Apr 15, 2023 pm 07:43 PM

作为一个技术博主,了不起比较喜欢各种折腾,之前给大家介绍过ChatGPT​接入微信,钉钉和知识星球(如果没看过的可以翻翻前面的文章),最近再看开源项目的时候,发现了一个ChatGPTWebUI项目。想着刚好之前没有将ChatGPT​接入过WebUI,有了这个开源项目可以拿来使用,真是不错,下面是实操的安装步骤,分享给大家。安装官方在Github​的项目文档上提供了很多中的安装方式,包括手动安装,docker​部署,以及远程部署等方法,了不起在选择部署方式的时候,一开始为了简单想着

PyCharm教程:如何在PyCharm中移除项目?PyCharm教程:如何在PyCharm中移除项目?Feb 24, 2024 pm 05:54 PM

PyCharm是一款功能强大的Python集成开发环境(IDE),提供了丰富的功能帮助开发者更高效地编写和管理Python项目。在使用PyCharm开发项目的过程中,有时候我们需要删除一些不再需要的项目以释放空间或清理项目列表。本文将详细介绍如何在PyCharm中删除项目,并提供具体的代码示例。如何删除项目打开PyCharm,进入项目列表界面。在项目列表中,

基础教程:使用IDEA创建Maven项目基础教程:使用IDEA创建Maven项目Feb 19, 2024 pm 04:43 PM

IDEA(IntelliJIDEA)是一款强大的集成开发环境,可以帮助开发人员快速高效地开发各种Java应用程序。在Java项目开发中,使用Maven作为项目管理工具能够帮助我们更好地管理依赖库、构建项目等。本文将详细介绍如何在IDEA中创建一个Maven项目的基本步骤,同时提供具体的代码示例。步骤一:打开IDEA并创建新项目打开IntelliJIDEA

快速掌握PyCharm项目打包的基础知识快速掌握PyCharm项目打包的基础知识Dec 30, 2023 pm 01:17 PM

从零开始,快速上手PyCharm项目打包技巧概述:在Python开发中,将项目打包成可执行文件是非常重要的一步。它可以方便地分享和分发项目,而无需安装Python解释器和依赖包。PyCharm作为一个功能强大的Python集成开发环境,提供了快速上手项目打包的技巧和工具。本文将介绍如何利用PyCharm从零开始打包你的Python项目,并提供具体的代码示例。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor