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 &
相关文章:
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 目…...

基于神经网络的3D地质模型
地球科学家需要对地质环境进行最佳估计才能进行模拟或评估。 除了地质背景之外,建立地质模型还需要一整套数学方法,如贝叶斯网络、协同克里金法、支持向量机、神经网络、随机模型,以在钻井日志或地球物理信息确实稀缺或不确定时定义哪些可能是…...
Spring AOP教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容…...

1.linux的常用命令
目录 一、Linux入门 二、Linux文件系统目录 三、Linux的vi和vim的使用 四、Linux的关机、重启、注销 四、Linux的用户管理 五、Linux的运行级别 六、Linux的文件目录指令 七、Linux的时间日期指令 八、Linux的压缩和解压类指令 九、Linux的搜索查找指令 …...
XiaoFeng.Net 网络库使用
网络库介绍 XiaoFeng.Net网络库包含了 SocketServer,SocketClient,WebSocketServer,WebSocketClient四个类库 SocketServer 网络服务端同时支持Socket客户端连接,WebSocket客户端,浏览器WebSocket连接 SocketCleint 网络客户端 WebSocketServer WebSock…...

【ES6】—数组的扩展
一、类数组/ 伪数组 1. 类/伪数组: 并不是真正意义的数组,有长度的属性,但无法使用Array原型上的方法 let divs document.getElementsByTagName(div) console.log(divs) // HTMLCollection []let divs2 document.getElementsByClassName("xxx&q…...

Android 实现资源国际化
前言 国际化指的是当Android系统切换语言时,相关设置也随之改变,从而使用不同的国家地区; 简而言之,就是我们的Android App中的文字和图片会随着不同国家的地区变化从而切换为不同语言文字和不同国家的图片 文字图片国际化 只要…...

uni、js——点击与禁用(不可点击)、动态样式class
案例 没约满的时间可以点击进行选择,约满的就不能选择了。选择完之后变色变字。 核心思想就是创建一个第三方变量存起来,点击谁就存到第三方,在根据这个进行判断。 代码 <template><view class"content"><view cl…...
分布式技术
分布式没有权威的技术,只有实践经验和积累的组件。常见的分布式技术有发号机制、分布式数据库、分布式数据库事物、基于Redis的分布式缓存、分布式会话、分布式安全认证。 1、发号机制 在数据库(关系数据库)中,主键往往是一条记…...

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

微服务框架 go-zero logx 日志组件剖析
addTenant api 和 rpc 的实现 上一篇我们说到咱们还剩下 addTenant 功能还未实现,不知道有没有兄弟感兴趣去实验一波的,本篇文章进行简要补充 根据上一篇文章分析,其实我们只需要执行如下几步即可: 编写 tenant.api,…...

基于Java+SpringBoot+Vue前后端分离图书电子商务网站设计和实现
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…...

C# Winfrom通过COM接口访问和控制Excel应用程序,将Excel数据导入DataGridView
1.首先要创建xlsx文件 2.在Com中添加引用 3. 添加命名空间 using ApExcel Microsoft.Office.Interop.Excel; --这样起个名字方面后面写 4.样例 //点击操作excelDataTable dt new DataTable();string fileName "D:\desktop\tmp\test.xlsx";ApExcel.Application exA…...
Linux-tomcat环境搭建、jpress部署实践、nginx反向代理
♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏…...

SQLmap使用
文章目录 利用sqlmap 注入得到cms网站后台管理员账密获取数据库名称获取cms数据库的表名获取users表中的字段(内容)获取username字段和password字段的内容 salmap破解psot请求数据包salmap获取getshell 利用sqlmap 注入得到cms网站后台管理员账密 获取数…...

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页
【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页 文章目录 一、前言二、安装和基本使用1. 添加依赖2. 基础配置和初始化 三、实际业务中的用法1. 与 API 集成2. 错误处理 四、完整示例1. 创建一个无限滚动列表2. 使用在你的应用中3. 完整代码示例 五、总…...

python爬虫的js逆向入门到进阶教程文章分享汇总~持续更新
目录 一、内容介绍二 、专栏内容-持续更新1、JS逆向入门2、Js逆向进阶3、爬虫基础知识4、工具与安装5、漫星内容分享 三、星球使用四、b站up主视频推荐 一、内容介绍 二 、专栏内容-持续更新 1、JS逆向入门 2023-08-25》11.常见加密>xx音乐RSA加密 https://articles.zsxq.c…...
面试常问:水平居中和垂直居中的方法
水平居中 文本居中 如果元素为行内元素,可以将父元素的text-align属性设置为center,这样子元素就会水平居中对齐 .text{text-align: center; }固定宽度的居中 如果元素宽度已知并固定,可以通过将左右margin设置为auto来实现水平居中。 .…...
第七届“蓝帽杯”初赛取证题目分享
前言: 刚刚打完比赛,准备晚上写一下wp,刚好整理一下题目,ctf的题目一般都有,取证不一定,所以我整理一下,方便大家复盘。 题目: 1:【APK取证】涉案apk的包名是ÿ…...

go语言学习之有关变量的知识
文章目录 变量的学习1.变量的使用步骤2.变量的注意事项3.变量使用的三种方式:4.程序中 号的使用5.变量的数据类型1)int数据类型2)小数类型浮点型3)**字符类型**4)**字符串(String)类型**5&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...