前言

此篇博客用以介绍 MySQL Cluster 集群部署方法

一、节点规划

序号    IP地址          节点名称
1 172.16.1.201 mysql-manage
2 172.16.1.202 mysql-sql1
3 172.16.1.203 mysql-sql2

二、系统版本

[root@node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

三、关闭防火墙

[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# systemctl disable firewalld

四、关闭 selinux

[root@node1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@node1 ~]# setenforce 0

五、配置 hosts

[root@node1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.1.201 mysql-manage
172.16.1.202 mysql-sql1
172.16.1.203 mysql-sql2

六、下载软件包

推荐使用国内镜像,在 windows 选择版本后下载
http://mirrors.sohu.com/mysql/MySQL-Cluster-7.5 将下载后的包上传至服务器 /usr/local 下

七、安装配置管理节点

解压

cd /usr/local
tar xf mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz

取出需要命令

cd mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64
cp bin/ndb_mgm* /usr/local/bin

新建配置文件并且初始化管理节点

mkdir /var/lib/mysql-cluster
ln -s /usr/local/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64 /usr/local/mysql
vi /var/lib/mysql-cluster/config.ini
[ndbd default]
NoOfReplicas=2
DataMemory=512M
IndexMemory=18M [ndb_mgmd]
HostName=172.16.1.201
DataDir=/var/lib/mysql-cluster [ndbd]
HostName=172.16.1.202
DataDir=/var/lib/mysql-cluster [ndbd]
HostName=172.16.1.203
DataDir=/var/lib/mysql-cluster [mysqld]
[mysqld]

使用配置文件初始化管理节点

/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

出现MySQL Cluster Management Server mysql-5.7.16 ndb-7.5.12证明初始化成功  

使用ndb_mgm命令查看管理状态
ndb_mgm>show(使用show命令查看管理情况,当数据节点配置完毕之后,我们再用这个命令查看和管理)

八、安装配置数据和 mysql 节点

以下的所有操作需要在另外两台机器进行相同的操作

新增用户组mysql和用户msyql

groupadd mysql
useradd -g mysql -s /bin/false mysql

新建文件夹并赋予权限

mkdir /var/lib/mysql-cluster
chown root:mysql /var/lib/mysql-cluster

将包传至服务器/usr/local下

scp /usr/local/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz root@172.16.1.202:/uar/local
scp /usr/local/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz root@172.16.1.203:/uar/local

解压并创建软链接

cd /usr/local
tar xf mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz
ln -s /usr/local/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64 /usr/local/mysql

mysql初始化以及启动

cd /usr/local/mysql/bin  

一共需要两次初始化
第一次初始化
./mysqld --initialize 修改权限
cd /usr/local/mysql
chown -R root .
chgrp -R mysql . 复制启动文件并启动mysql
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
/etc/init.d/mysql.server start 第一次启动会报错,不要慌,再次初始化
cd /usr/local/mysql/bin
./mysqld --initialize 这时会在上层目录生成data目录
cd /usr/local/mysql
chown -R mysql. data 配置数据节点(ip均填写管理节点)
vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=172.16.1.201 [mysql_cluster]
ndb-connectstring=172.16.1.201 配置完成后,再次启动mysql即可
/etc/init.d/mysql.server start

修改数据库密码并保持两节点相同(密码会在初始化时生成)

mysql -uroot -p密码
alter user 'root'@'localhost' identified by '密码';
修改完记得exit后用新密码再次登录尝试

ndb节点初始化

/usr/local/mysql/bin/ndbd --initial
如果出现下述现象就成功了 2019-03-28 14:04:07 [ndbd] INFO -- Angel connected to '172.16.1.201:1186'
2019-03-28 14:04:07 [ndbd] INFO -- Angel allocated nodeid: 2

回到管理节点查看

-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 172.16.1.201:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @172.16.1.202 (mysql-5.7.24 ndb-7.5.12, Nodegroup: 0, *)
id=3 @172.16.1.203 (mysql-5.7.24 ndb-7.5.12, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s)
id=1 @172.16.1.201 (mysql-5.7.24 ndb-7.5.12) [mysqld(API)] 2 node(s)
id=4 @172.16.1.203 (mysql-5.7.24 ndb-7.5.12)
id=5 @172.16.1.202 (mysql-5.7.24 ndb-7.5.12)

九、检查同步状态

在一台上面创建数据库,看另一台是否被同步,然后创建表,然后新增删除等等
唯一需要注意的是,创建表的时候必须选择表的引擎为NDBCLUSTER,否则表不会进行同步
如果使用sql创建表,命令为:
CREATE TABLE tablename (age INT) ENGINE=NDBCLUSTER

十、启动和关闭

启动mysql集群,启动顺序为:管理节点→数据节点→SQL节点
启动命令常用的可以复制到/usr/local
关闭时只需要关闭管理节点,后面的数据节点会同时被关闭,mysql就和原来一样即可
管理节点关闭命令:ndb_mgm -e shutdown
(执行完成之后管理节点会关闭,数据节点也会关闭,但SQL节点不会,也就是数据库服务需要手动到每一台服务器上停止以保证数据同步)

MySQL Cluster 集群部署的更多相关文章

  1. Centos 7 下 Mysql 5.7 Galera Cluster 集群部署

     一.介绍 传统架构的使用,一直被人们所诟病,因为MySQL的主从模式,天生的不能完全保证数据一致,很多大公司会花很大人力物力去解决这个问题,而效果却一般,可以说,只能是通过牺牲性能,来获得数据一致性 ...

  2. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...

  3. MySQL Cluster 集群

    本文转载 http://www.cnblogs.com/gomysql/p/3664783.html MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅 ...

  4. Innodb Cluster集群部署配置

    目录 一.简介 二.环境声明 三.部署 安装(均操作) 配置(均操作) 开启group_replication(均操作) 启动group_replication 创建集群(在mysql-1执行) 创建 ...

  5. 2、Redis 底层原理:Cluster 集群部署与详解

    Redis 简介 Redis 提供数据缓存服务,内部数据都存在内存中,所以访问速度非常快. 早期,Redis 单应用服务亦能满足企业的需求.之后,业务量的上升,单机的读写能力满足不了业务的需求,技术上 ...

  6. centos7 mysql cluster集群搭建基于docker

    1.准备 mn:集群管理服务器用于管理集群的其他节点.我们可以从管理节点创建和配置集群上的新节点.重新启动.删除或备份节点. db2/db3:这是节点间同步和数据复制的过程发生的层. db4/db5: ...

  7. 基于Docker的Mysql Cluster集群

    参考 mysql-cluster镜像 https://medium.com/@ahmedamedy/mysql-clustering-with-docker-611dc28b8db7 使用Docker ...

  8. Redis cluster 集群部署和配置

    目录 一.集群简介 cluster介绍 cluster原理 cluster特点 应用场景 二.集群部署 环境介绍 节点部署 启动集群 三.集群测试 一.集群简介 cluster介绍 redis clu ...

  9. Redis5.0.8 Cluster集群部署

    目录 一.Redis Cluster简介 二.部署 三.创建主库 一.Redis Cluster简介 Redis Cluster集群是一种去中心化的高可用服务,其内置的sentinel功能可以提供高可 ...

随机推荐

  1. 7.移动端自动化测试-小知识 try...except...finally语句

    异常Error 我们在写代码的时候,经常会遇见程序抛出Error无法执行的情况 一般情况下,在Python无法正常处理程序时就会发生一个异常.异常是Python对象,表示一个错误.当Python脚本发 ...

  2. nodejs request module里的json参数的一个坑

    今天工作的时候遇到一个坑,在客户端用nodejs给服务器发送HTTP请求,服务器老是报错:In the context of Data Services an unknown internal ser ...

  3. go语言入门(7)面向对象编程

    1,概述     对于面向对象编程的支持Go 语言设计得非常简洁而优雅.因为, Go语言并没有沿袭传统面向对象编程中的诸多概念,比如继承(不支持继承,尽管匿名字段的内存布局和行为类似继承,但它并不是继 ...

  4. Java BIO、NIO、AIO 基础,应用场景

    Java对BIO.NIO.AIO的支持: Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必 ...

  5. Spring Cloud(五)断路器监控(Hystrix Dashboard)

    在上两篇文章中讲了,服务提供者 Eureka + 服务消费者 Feign,服务提供者 Eureka + 服务消费者(rest + Ribbon),本篇文章结合,上两篇文章中代码进行修改加入 断路器监控 ...

  6. 车钥匙开关上找不到+24V的问题 - 岱峰 - DGY90

    背景: 本人外行,用万用表,在车身电路上查找电瓶正极. 机种:吊管机:机型:岱峰-DGY90 过程: 经过测试,车钥匙开关各连接点电压: 标记B - OFF时电压0,ON时电压+25V 标记BR - ...

  7. golang shell 交叉编译

    #!/usr/bin/env bash set -e uname_s=`uname -s | awk '{print tolower($0)}'` uname_m=`uname -m` timeTag ...

  8. 百度人脸识别java html5

    1.前端thymeleaf+h5 index.html    人脸识别+定位,用的百度sdk <!DOCTYPE html> <html xmlns="http://www ...

  9. bat 提示窗口,带换行

    bat 提示窗口 各种窗口样式 mshta vbscript:msgbox("内容1",1,"标题1")(window.close) mshta vbscrip ...

  10. systemctl automatically restart service

    systemctl automatically restart service  Pothi Kalimuthu  Linux  October 9, 2016 0 Minutes Reference ...