MySQL集群(mysql-cluster)

环境

系统环境:centos7

管理节点:192.168.127.128

数据节点:192.168.127.145,192.168.127.146

sql节点:192.168.127.145,192.168.127.146

约定

创建mysql用户,将程序部署到/home/mysql 目录下

数据节点、sql节点必须卸载mariadb

管理节点 创建/var/lib/mysql/mysql-cluster 目录,且mysql账户有读写权限

管理节点部署

/home/mysql目录下创建config.ini 文件

[ndbd default]
NoOfReplicas=2[ndb_mgmd]
NodeId=1
hostname=192.168.127.128
datadir=/home/mysql/mysql-cluster/[ndbd]
NodeId=2
hostname=192.168.127.145
datadir=/home/mysql/data/
[ndbd]
NodeId=3
hostname=192.168.127.146
datadir=/home/mysql/data/[mysqld]
NodeId=4
hostname=192.168.127.145
[mysqld]
NodeId=5
hostname=192.168.127.146

第一次启动执行

./bin/ndb_mgmd -f ./config.ini --initial

关闭命令

./bin/ndb_mgm -e shutdown

数据节点、sql节点部署

在/etc 目录下创建my.cnf

其中mysql_cluster节点为数据节点的配置,其他的为mysql节点的配置

[client]
socket=/home/mysql/mysql.sock[mysqld]
basedir=/home/mysql
datadir=/home/mysql/data
socket=/home/mysql/mysql.sock
user=mysql
symbolic-links=0
ndbcluster
ndb-connectstring=192.168.127.128[mysqld_safe]
log-error=/home/mysql/mysqld.log
pid-file=/home/mysql/mysqld.pid[mysql_cluster]
ndb-connectstring=192.168.127.128

启动数据节点

第一次启动需要加 --initial 参数

./bin/ndbd --initial

mysqld配置

(1)初始换数据:

./bin/mysqld --initialize

(2)启动mysql

./bin/mysqld_safe --user=mysql &

(3) 登录mysql修改root账户密码

set password for 'root'@'localhost' = password('123456')
grant all privileges on *.* to 'root'@'%' identified by '123456'

(4)mysqld 关闭

Kill 掉mysqld_safe进程即可

再次启动需要删除 mysql.sock、mysqld.pid、mysql.sock.lock 文件

启动顺序

管理节点>数据节点>sql节点(必须等上级所有节点启动后才能启动下级节点)

关闭顺序

管理节点>数据节点>sql节点

动态增加sql节点、数据节点

一般来说NoOfReplicas是2,那么增加或减少的数量也应该是成对的。一次需要增加2n个数据节点、或者2n个sql节点(n>=1)

修改配置

在config.ini 中增加sql节点或者数据节点

关闭管理节点

执行ndb_mgm进入管理命令界面

找到管理节点的id,然后执行 管理节点id stop,退出

启动

./bin/ndb_mgmd -f ./config.ini --reload

滚动重启旧的数据存储节点服务(滚动重启,不能所有节点同时重启,如果同时停止,数据库前端查询就会出现错误)

ndb_mgm> [ndb_id] restart 

滚动重启所有的数据查询节点服务:可以将mysqld_safe的启动、关闭写成shell脚本,通过脚本重启mysql服务

脚本

kill_mysqld_safe.sh

#!/bin/bashsp_pid=`ps -ef | grep mysqld_safe | grep -v grep | awk '{print $2}'`
if [ -z "$sp_pid" ]
thenecho "[ not find mysqld_safe pid ]"
elseecho "find result: $sp_pid "kill -9 $sp_pid
fispm_pid=`ps -ef | grep mysqld | grep -v grep | awk '{print $2}'`
if [ -z "$spm_pid" ]
thenecho "[ not find mysqld pid ]"
elseecho "find result: $spm_pid"kill -9 $spm_pid
firm -f mysql.sock
rm -f mysql.sock.lock
rm -f mysqld.pidecho "remove mysql.sock,mysqld.pid,mysql.sock.lock"

kill_ndbd.sh

#!/bin/bashsp_pid=`ps -ef | grep ndbd | grep -v grep | awk '{print $2}'`
if [ -z "$sp_pid" ]
thenecho "[ not find ndbd pid ]"
elseecho "find result: $sp_pid "kill -9 $sp_pid
fi

start_mysqld_safe.sh

#!/bin/bash
./bin/mysqld_safe --user=mysql &

start_ndbd.sh

#!/bin/bash./bin/ndbd &

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

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

相关文章

LAMP架构详解+构建LAMP平台之Discuz论坛

L A M P 一、LAMP架构简介1.1 LAMP架构的组成1.2 LAMP各组件的主要作用1.3 LAMP工作过程1.4 CGI和fastcgi 二、搭建Discuz论坛的思路三、编译安装Apache httpd3.1 前置准备3.2 移动apr包 apr-util包到安装目录中,并切换到 httpd-2.4.29目录中3.3 编译安装3.4 建立软…

dvwa xss通关

反射型XSS通关 low难度 选择难度&#xff1a; 直接用下面JS代码尝试&#xff1a; <script>alert(/xss/)</script>通关成功&#xff1a; medium难度 直接下面代码尝试后失败 <script>alert(/xss/)</script>发现这段代码直接被输出&#xff1a; 尝试…

开始MySQL之路——外键关联和多表联合查询详细概述

多表查询和外键关联 实际开发中&#xff0c;一个项目通常需要很多张表才能完成。例如&#xff0c;一个商城项目就需要分类表&#xff0c;商品表&#xff0c;订单表等多张表。且这些表的数据之间存在一定的关系&#xff0c;接下来我们将在单表的基础上&#xff0c;一起学习多表…

Spring、SpringMVC、SpringBoot三者的区别

目录 Spring是什么&#xff1f; SpringMVC是什么&#xff1f; SpringBoot是什么&#xff1f; Spring、SpringMVC、SpringBoot三者之间的关系 Spring是什么&#xff1f; Spring是一个开源的应用程序框架&#xff0c;它提供了一种简易的开发方式&#xff0c;通过依赖注入和面…

微服务项目容器编排docker-compose.yml、Dockerfile文件模板、相关配置文件、shell脚本

nacos Dockerfile&#xff08;不需要特殊处理&#xff0c;使用docker conpose可以不写&#xff09; # 基础镜像 FROM nacos/nacos-server # author MAINTAINER jianglifeng<jlifengfoxmail.com> RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ &&a…

Qt --- 自定义提示框 类似QMessagebox

QMessageBox::information(NULL, QString("title"), QString("I am information")); 以下是自定义提示框的代码&#xff0c;有图有真相&#xff01;提示框大部分都采用模态的形式&#xff0c;关于模态也不再多提&#xff01;所以父类为QDialog&#xff0c;…

若依移动端Ruoyi-App 项目的后端项目入门

后端项目运行 运行报错 Error creating bean with name sysConfigServiceImpl: Invocation of init method failed 数据库创建了。 代码连接数据库地方了也匹配上了。但是还是报错。 分析 &#xff1a; 想起来我电脑从来没有安装过redis 下载安装redis到windows 链接&…

【Mac】编译Spring 源码和Idea导入

今天我们开始Spring源码的阅读之旅。阅读Spring的源码的第一步当然是编译Spring源码。首先我们要去GitHub上将spring源码给clone下来。 笔者编译环境如下&#xff1a; Spring版本&#xff1a;5.28 https://github.com/spring-projects/spring-framework/tree/v5.2.8.RELEASE …

人工智能项目集合推荐(数据集 模型训练 C++和Android部署)

人工智能项目集合推荐(数据集 模型训练 C和Android部署) 目录 人工智能项目集合推荐(数据集 模型训练 C和Android部署) 1.三维重建项目集合 ★双目三维重建 ★结构光三维重建 2.AI CV项目集合 ★人脸检测和人体检测 ★人体姿态估计(人体关键点检测) ★头部朝向估计 …

【C++初阶】模拟实现list

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

nginx配置站点强制开启https

当站点域名配置完SSL证书后&#xff0c;如果要强制开启HTTPS&#xff0c;可以在站点配置文件中加上&#xff1a; #HTTP_TO_HTTPS_START if ($server_port !~ 443){rewrite ^(/.*)$ https://$host$1 permanent; } #HTTP_TO_HTTPS_END 附上完整的配置完SSL证书&#xff0c;强制…

W18.4、单元测试

一、目标: 1. 提高代码质量 2. 提高提测质量 3. 降低联调成本 4. 减少修改代码引入新问题 二、单元测试要点 1. 编写独立的测试类:为每个要测试的类编写一个对应的测试类,保持测试代码与实际代码分离。 2. 测试代码覆盖率:尽量确保对实际代码的所有分支和边界情况…

Consul的简介与安装

1、Consul简介 Consul是一套开源的分布式服务发现和配置管理系统&#xff0c;由HashiCorp公司用Go语言开发&#xff0c;Consul提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用&#xff0c;也可以一起使用以构建全方位的服…

Node.js怎么搭建HTTP服务器

在 Node.js 中搭建一个简单的 HTTP 服务器非常容易。以下是一个基本的示例&#xff0c;演示如何使用 Node.js 创建一个简单的 HTTP 服务器&#xff1a; // 导入 http 模块 const http require(http); // 创建一个 HTTP 服务器 const server http.createServer((req, res) …

Docker容器与虚拟化技术:GitHub账户注册

目录 一、实验 1.GitHub 一、实验 1.GitHub &#xff08;1&#xff09;GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持Git作为唯一的版本库格式进行托管&#xff0c;故名GitHub。 &#xff08;2&#xff09;官网 GitHub: Let’s build from here …

DQL语句的用法(MySQL)

文章目录 前言一、DQL语句间接和语法1、DQL简介2、DQL语法 二、DQL语句使用1、基础查询&#xff08;1&#xff09;查询多个字段&#xff08;2&#xff09;为字段设置别名&#xff08;3&#xff09;去除重复记录 总结 前言 本文主要介绍SQL语句中DQL语句的功能和使用方法&#…

乐趣无限:10款基于Pygame的经典游戏合集

​​​​​​引言 游戏开发一直是许多程序员和游戏爱好者追求的梦想。而Pygame作为一款功能强大的游戏开发库&#xff0c;为我们提供了实现各种有趣游戏的工具和接口。在本文中&#xff0c;我将向大家介绍10款基于Pygame的经典游戏合集&#xff0c;从简单的猜数字到刺激的飞机…

本地私有仓库、harbor私有仓库部署与管理

本地私有仓库、harbor私有仓库部署与管理 一、本地私有仓库1.本地私有仓库简介2.搭建本地私有仓库3.容器重启策略介绍 二、harbor私有仓库部署与管理1.什么是harbor2.Harbor的特性3.Harbor的构成4.harbor部署及配置5.客户端测试 三、Harbor维护1.创建2.普通用户操作私有仓库3.日…

一个mongodb问题分析

mongodb问题分析 现状 表的个数&#xff1a; 生产上常用的表就10来个。 sharding cluster replica set方式部署&#xff1a; 9个shard server&#xff0c; 每个shard server 1主2从&#xff0c; 大量数据写入时或对大表创建索引时&#xff0c;可能有主从复制延迟问题。实…

opencv-全景图像拼接

运行环境 python3.6 opencv 3.4.1.15 stitcher.py import numpy as np import cv2class Stitcher:#拼接函数def stitch(self, images, ratio0.75, reprojThresh4.0,showMatchesFalse):#获取输入图片(imageB, imageA) images#检测A、B图片的SIFT关键特征点&#xff0c;并计算…