当前位置: 首页 > news >正文

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.lryc.cn/news/141263.html

相关文章:

  • 基于神经网络的3D地质模型
  • Spring AOP教程_编程入门自学教程_菜鸟教程-免费教程分享
  • 1.linux的常用命令
  • XiaoFeng.Net 网络库使用
  • 【ES6】—数组的扩展
  • Android 实现资源国际化
  • uni、js——点击与禁用(不可点击)、动态样式class
  • 分布式技术
  • Consul的简介与安装
  • 微服务框架 go-zero logx 日志组件剖析
  • 基于Java+SpringBoot+Vue前后端分离图书电子商务网站设计和实现
  • C# Winfrom通过COM接口访问和控制Excel应用程序,将Excel数据导入DataGridView
  • Linux-tomcat环境搭建、jpress部署实践、nginx反向代理
  • SQLmap使用
  • 【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页
  • python爬虫的js逆向入门到进阶教程文章分享汇总~持续更新
  • 面试常问:水平居中和垂直居中的方法
  • 第七届“蓝帽杯”初赛取证题目分享
  • go语言学习之有关变量的知识
  • 算法通过村第8关【青铜】| 二叉树的经典算法题
  • Open3D 点云均值滤波
  • C语言指针入门详解
  • 软件工程(十四) 设计模式之结构型模式(二)
  • 不解压的方式直接更新jar包内部的内容
  • 软件工程(八) UML之类图与对象图
  • 【Unity3D赛车游戏】【五】Unity中汽车加速效果是如何优化的?
  • 龙智案例:某大型零售企业如何打造高速、现代化的ITSM体系
  • jdk 03.stream
  • “华为杯”研究生数学建模竞赛2018年-【华为杯】C题:对恐怖袭击事件记录数据的量化分析
  • java8的reduce方法