搭建mysql集群(Windows环境)

news2024/12/24 23:58:43

1、MySQL集群简介
        MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。
        MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的。MySQL群集中有三种节点:管理节点、数据节点和SQL节点。群集中的某计算机可能是某一种节点,也可能是两种或三种节点的集合。这三种节点只是在逻辑上的划分,所以它们不一定和物理计算机是一一对应的关系。

        管理节点(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。
        数据节点用于存储数据。
        SQL节点跟一般的MySQL服务器是一样的,我们可以通过它进行SQL操作。
下图中画出了三种群集节点及应用程序间的关系:

2、MySQL集群安装配置
        下载MySQL集群:http://dev.mysql.com/downloads/cluster/

        如果不使用最新版本,可以去MySQL :: Download MySQL Cluster (Archived Versions)

        这样的历史版本页面查找

        

         mysql-cluster-gpl-7.3.5-winx64.zip:
                可以根据需要选择,适用于64位操作系统
        mysql-cluster-gpl-7.3.5-win32.zip:
                可以根据需要选择,适用于32位操作系统

2.1、环境规划简介
        首先找三台电脑,或者是开三个虚拟机,管理节点部署在一台机子上,其他两台每台都部署一个数据节点和一个SQL节点。这里以两台机子举例,其中一台(IP为10.37.87.136)部署管理节点、数据节点和SQL节点,另一台(IP为10.37.88.208)部署数据节点和SQL节点。
实际应用中,不要将管理节点跟数据节点部署到一台机子上,因为如果数据节点宕机会导致管理节点不可用,同时整个MySQL群集也就都不可用了。所以一个MySQL群集理想情况下至少有三台服务器,将管理节点单独放到一台服务器上。这里以两台举例,只是为了说明三种节点的配置启动方法。


2.2、配置管理节点
2.2.1、在IP为10.37.87.136的主机的D盘中新建文件夹mysql,然后在此文件夹下新建子目录bin和mysql-cluster,再将安装包中的bin目录下的ndb_mgm.exe和ndb_mgmd.exe拷贝到D:\mysql\bin下。在目录D:\mysql\bin下新建cluster-logs目录、config.ini文件和my.ini文件。
2.2.2、config.ini文件内容如下:
[ndbd default] 
# Options affecting ndbd processes on all data nodes: 
# Number of replicas
NoOfReplicas=2 
DataDir=D:/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=10.37.87.136             
# Directory for management node log files 
DataDir=D:/mysql/bin/cluster-logs

[ndbd] 
# Options for data node "A":                                
# (one [ndbd] section per data node) 
# Hostname or IP address
HostName=10.37.87.136        

[ndbd] 
# Options for data node "B": 
# Hostname or IP address
HostName=10.37.88.208          

[mysqld] 
# SQL node options: 
# Hostname or IP address
HostName=10.37.87.136     

[mysqld] 
# SQL node options: 
# Hostname or IP address
HostName=10.37.88.208  
2.2.3、my.ini中的内容如下:

[mysql_cluster]
# Options for management node process
config-file=D:/mysql/bin/config.ini

2.3、配置数据节点
2.3.1、在IP为10.37.87.136的主机中新建文件夹D:\mysqlcluster\datanode\mysql,然后在此文件夹中继续新建子目录bin和cluster-data,bin下再建一个子目录也叫cluster-data。
2.3.2、将安装包data目录下的所有文件拷贝到D:\mysqlcluster\datanode\mysql\cluster-data下
2.3.3、将安装包中bin目录下的ndbd.exe拷贝到D:\mysqlcluster\datanode\mysql\bin下,并在D:\mysqlcluster\datanode\mysql中新建my.ini文件,文件内容为:

[mysql_cluster]
# Optionsfor data node process:
#location of management server
ndb-connectstring=10.37.87.136   
注:因为数据节点的配置是一样的,所以我们可以直接将10.37.87.136主机中的文件夹D:\mysqlcluster拷贝到10.37.88.208主机的D盘下。

2.4、配置SQL节点
2.4.1、在10.37.87.136主机的D:\mysqlcluster下新建子目录sqlnode,在D:\mysqlcluster\sqlnode下新建子目录mysql,将安装包文件解压到mysql目录下,然后在D:\mysqlcluster\sqlnode\mysql下新建my.ini文件,文件内容为:
[mysqld] 
# Options for mysqld process: 
# run NDB storage engine 
ndbcluster                       
# location of management server 
ndb-connectstring=10.37.87.136
2.4.2、将my-default.ini 文件删除或更名为my-default.ini.bak
注:因为SQL节点的配置也是一样的,所以我们可以直接将10.37.87.136主机中的文件夹D:\mysqlcluster\sqlnode文件夹整个拷贝到10.37.88.208主机的D盘下。


3、启动MySQL Cluster
3.1   简介
        在启动MySQL Cluster之前,首先要做的是保证每个SQL节点上的MySQL服务能够启动成功,并为每个SQL节点进行相关权限的分配以保证能够远程登录访问。然后依次启动三种节点。三种节点服务启动时,一定要按照先启动管理节点,后启动数据节点,再启动SQL节点的顺序进行。

我启动时系统提示了install/remove of the service denied,网上找了办法,使用管理员权限

运行CMD命令后问题解决了。

3.2、启动MySQL服务
3.2.1、进入D:\mysqlcluster\sqlnode\mysql\bin目录下,使用mysqld –install安装MySQL服务,我使用的启动命令是mysqld -install。因为之前我安装成功过,所以再次执行该命令会提示下图内容。

   3.2.2、 使用net start mysql命令启动MySQL服务


       

3.3 配置MySQL远程连接

3.3.1、 进入D:\mysqlcluster\sqlnode\mysql\bin目录下,使用mysql –uroot –p,然后输入密码,设置root用户密码。

我的执行命令是D:\mysqlcluster\sqlnode\mysql\bin\mysql –uroot –p

a、继续想办法解决,尝试不输入密码直接回车,也不行

 b、继续想办法解决,

执行D:\mysqlcluster\sqlnode\mysql\bin\mysqld --init-file=E:\mysqlc.txt --console设置密码成功,

其中E:\mysqlc.txt的内容如下:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

发现还是不行。

c、尝试在D:\mysqlcluster\sqlnode\mysql\my.ini配置skip-grant-tables,

 ,重新启动mysql节点,然后执行D:\mysqlcluster\sqlnode\mysql\bin\mysql –uroot –p

然后不输入密码直接回车,

然后输入use mysql;换库

然后输入update user set password=password(“123456”) where user=”root”;改动成功。

,重新启动mysql节点,然后执行D:\mysqlcluster\sqlnode\mysql\bin\mysql –uroot –p

密码输入123456

然后下一步

3.3.2、 切换到mysql数据库,输入以下命令,为root用户分配远程连接的相关权限

use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

 发现成功了,

3.4、启动管理节点
3.4.1、在10.37.87.136主机中打开命令行窗口,切到D:\mysql\bin目录,输入:

ndb_mgmd -f config.ini --configdir=D:\mysql\mysql-cluster
回车,管理节点服务就启动了,命令行上可能没有任何提示信息,可以打开D:\mysql\bin\cluster-logs\ndb_1_cluster.log日志文件查看启动信息。注意,此命令行窗口不能关闭,除非你想停止服务。

3.4.2、也可以将其做成服务,在命令行中输入:
ndb_mgmd --install=ndb_mgmd -f config.ini --configdir=D:\mysql\mysql-cluster

然后启动命令是net start ndb_mgmd(注意:本人操作时,该命令不能正常使用)。
3.5、启动数据节点
3.5.1、在10.37.87.136主机中打开新命令行窗口

进入D:\mysqlcluster\datanode\mysql\bin\,输入命令ndbd

3.5.2、也可以将其做成服务,在命令行中输入:ndbd --install=ndbd启动命令是net start ndbd
3.5.3、以相同的方法在其他数据节点,即10.37.88.208中启动数据节点服务。
3.5.4、在10.37.87.136主机中打开新命令行窗口,输入:
D:\mysql\bin\ndb_mgm
        回车,然后再输入:
ALL STATUS
        回车,就可以查看数据节点的连接信息了。     
3.6、启动SQL节点
3.6.1、在10.37.87.136主机中打开新命令行窗口,进入D:\mysqlcluster\sqlnode\mysql\bin\,输入:mysqld --console
回车,SQL节点启动,但是报错,如下

3.6.2、也可以将其做成服务,
进入D:\mysqlcluster\sqlnode\mysql\bin\然后执行mysqld -install mysqld然后可以使用net start mysqld启动该服务,查看服务列表可参考windows 查看服务列表的方法_windows怎么查看所有服务_好装机
3.6.3、以相同的方法在其他SQL节点,即10.37.88.208中启动SQL节点。
3.6.4、想要查看SQL节点的启动情况可以在10.37.87.136主机中同样打开新命令行,输入:
D:\mysql\bin\ndb_mgm
        回车,再输入:
SHOW
        回车,就可以看到SQL节点的连接情况了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/698753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element封装 table表格 ,插槽的使用,修改el-table-column的值

举例 vue2这种不封装的 直接写的很罗嗦麻烦 下面圈起来的可以封装一个对象 进行循环 弊端: 循环后 无法进行获取更改某一列的值 比如data日期我需要转换年月日 不循环我直接在这个el-table-column的这一列进行写&#xff08;如下&#xff09; <el-table-column label&quo…

COMSOL基于随机Voronoi骨架的三维多孔材料泡沫铝骨小梁模型力学分析

力学模型 模型计算为圆柱体试件轴压模型&#xff0c;在轴向荷载作用下应力分布的计算。 几何生成 采用CAD Voronoi3D插件在AutoCAD内直接生成三维Voronoi&#xff0c;其计算参数如下&#xff1a; 模型生成后删除晶格部件&#xff0c;并对晶粒进行一步平滑处理&#xff1a…

Centos7系统,虚拟机断电后启动报错:You might want to save “/run/initramfs/rdsosreport.txt“

虚拟机突然断电造成centos8系统无法启动 Linux报You might want to save “/run/initramfs/rdsosreport.txt“ to a USB stick or /boot after mounting 1.解决方法&#xff1a; 大家可以用umr查看到自己装的镜像对应的以-root结尾的文件是哪个。因为大家装的镜像不同&#x…

多语言翻译node工具

多语言 i18n 翻译node工具 介绍 本文是为了方便使用 i18n的翻译工具&#xff0c;实现把excel的内容追加或更改到项目中的多语言文件中主要文件为 index.js 、test.txt 和 dist 文件夹内所有内容&#xff08;dist为项目中需要翻译的多语言文件&#xff0c;下面有例子&#xff…

有源、无源晶振的区别

在PCB设计中&#xff0c;晶振&#xff08;晶体振荡器&#xff09;是非常重要的电子元器件&#xff0c;相信大部分的PCB工程师对它都不会陌生。而对于有源晶振与无源晶振&#xff0c;很多人却是“傻傻分不清楚”。 我们知道&#xff0c;电子线路中的晶体振荡器分为无源晶振和有源…

TI AM64x工业核心板硬件说明书(双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F,主频1GHz)

1 硬件资源 创龙科技SOM-TL64x是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 单/四核Cortex-R5F 单核Cortex-M4F设计的多核工业级核心板&#xff0c;通过工业级B2B连接器引出5x TSN Ethernet、9x UART、2x CAN-FD、GPMC、PCIe/USB 3.1等接口。核心板经过专业的P…

如何配置git的.bashrc文件

1、进入到.git文件里&#xff1a;新建一个.bashrc文件 2、打开.bashrc文件添加配置信息&#xff1a; 代码&#xff1a; #用于输出git提交日志 alias git-loggit log --prettyoneline --all --graph --abbrev-commit #用于输出当前目录所有文件及基本信息 alias llls -al …

Git入门(职场必备工具)

目录 一、git在职场中的重要性 1.1git是什么&#xff1f; 1.2什么是版本控制 1.3学习这个工具的作用和目的 二、Git开发必备技能及其应用场景 2.1 如何用Git对一个目录进行版本控制流程&#xff1f; 三、Git 如何上传和提取代码 3.1 克隆远端库到本地库 3.2 将本地库推…

硬件学习件Cadence day12 PCB设计中打地孔与地孔设计,PCB 后期处理,钻孔文件导出

1. 制作 过地孔的焊盘 &#xff08;两种方法&#xff09;&#xff08;又叫制作盲埋孔&#xff09; 1.1 制作热风焊盘 &#xff08;之前的教程有&#xff0c;现在只给数据&#xff09; 1.2 第一种 allegro 外部 焊盘软件制作 1.2.1 打开软件 1.2.2 制作焊盘&#xff0c;查看…

使用Divi创建在线学习管理 (LMS) 网站

我喜欢在线学习课程。开始一个设计良好、组织良好、内容丰富的线上课程是有道理的。如果做得好&#xff0c;这些线上课程可以让您充满成就感。但是学习一门很棒的线上课程和创建一个线上课程是两种完全不同的体验。根据我的经验&#xff0c;创建学习管理/线上课程网站可能是一个…

自动刷新工具--可以自动编辑安居客房源信息

本工具可以自动刷新安居客的房源信息&#xff0c;不是爬虫&#xff0c;就是一款解放劳动力的RPA工具 使用方法&#xff1a; 1. 首先输入要自动刷新的房源id 2.点击 开始执行 如果需要免密登陆&#xff0c;需要在个人中心填上anjuke的账密 定时执行 声明&#xff1a;此工具只是…

kafka入门,数据可靠性(八)

1、回顾发送流程 2、ACK应答原理 0&#xff1a;生斥责发送过来的数据&#xff0c;不需要等数据落盘应答&#xff08;数据可靠性分析&#xff1a;丢数&#xff09; 1&#xff1a;生产者发送过来的数据&#xff0c;leader收到数据后应答&#xff08;数据可靠性分析&#xff1a;丢…

前端网络基础

目录 网络分层模型OSI七层模型TCP/IP四层模型TCP/IP五层模型 HTTP传递消息的模式传递消息的格式响应码 URL用户代理/user agent自动发送请求自动解析响应 AJAXXHRFetch 跨域同源与异源网络通信中的跨域浏览器对跨域的限制CORS简单请求对简单请求的验证 预检请求对预检请求的验证…

第4讲:使用ajax技术实现菜单展开或隐藏功能(xml数据)

使用ajax技术实现点击菜单时&#xff0c;展开当前子菜单列表&#xff0c;隐藏其他子菜单功能&#xff1b;前端使用静态html页面生成一级菜单&#xff0c;当点击某个菜单时&#xff0c;发送数据到后端(jsp文件)&#xff0c;利用responseXML返回xml格式文件&#xff0c;刷新二级菜…

机器学习李宏毅学习笔记35

文章目录 前言一、Meta learning1.第一步2.第二步3.第三步 二、machine learning 和 meta learning区别总结 前言 Meta learning元学习&#xff1a;学习如何学习 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、Meta learning 学习这件事也是一个…

webassembly安装python环境问题

在部署emscripten过程中&#xff0c;步骤emsdk install latest报错&#xff1a; 本以为是多个版本或版本不对应导致的&#xff0c;但是卸载所有版本并安装python3.9之后还是不行。 现象就是在cmd中使用python --version不报错也无版本显示。 一波bing~之后找到了结果(PYTHON|…

《Opencv3编程入门》学习笔记—第九章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第九章 直方图与匹配 一、图像直方图概述 1、作用&#xff1a;   在每个兴趣点设置一个有相近特征的直方图所构成的标签&#xff0c;通过标记帧与帧之间显著的边缘、颜…

性能测试讲解超详细Jmeter

目录 什么是性能 性能测试的目的 功能测试和性能测试 基准测试 负载测试 稳定性测试 压力测试 并发测试 总结 性能测试指标 响应时间 并发数 吞吐量 点击数 错误率 资源使用率 总结 性能测试流程 性能测试需求分析 性能测试计划和方案 ​编辑性能测试用例​编辑 性…

【Linux系统编程】shell的感性理解——王婆说媒

文章目录 1. shell是什么&#xff1f;它有什么作用&#xff1f;2. 透过王婆说媒感性理解shell的运行机制开端发展波澜渐起&#xff08;正常命令的处理&#xff09;故事角色与处理过程中各部分的映射走向高潮&#xff08;非法请求的处理&#xff09;shell 存在的意义结尾 1. she…

Elasticsearch:删除快照安全吗?

快速回答&#xff1a;是的&#xff01; 删除快照是安全的&#xff0c;因为每个快照在逻辑上都是独立的。 了解如何以及为何可以继续阅读。 Elasticsearch 使用增量快照&#xff0c;使你能够高效地备份和恢复数据。 你可以在这篇精彩的文章中找到它的工作原理 “Elasticsearch&…