当系统的规模达到一定程度后,数据库在系统中慢慢成为一个瓶颈,因此需要对数据库进行扩展。数据库集群时一种解决数据库负荷的有效手段,本篇主要是描述了数据库集群如何搭建和配置的过程。

一、mysql集群的规划

mysql集群由管理节点、数据节点、mysql节点组成。一般情况下数据节点和mysql可以放在统一服务器,管理节点在另外一个服务器。本例中采用三台服务器,一台作为管理节点,另外两台同时作为数据和mysql节点,可以用下图表示:

要搭建mysql的集群,首先就需要检查原系统是否有安装mysql,将原系统的mysql卸载后再安装mysql集群版,本文中的各个节点的系统都为centos 6.5。

二、mysql 的卸载

卸载的主要步骤如下:

1、收集系统的mysql信息

2、关闭mysql相关服务

3、卸载mysql软件

4、删除mysql残留的文件

2.1收集系统的mysql信息

[root@mysql-2 ~]# rpm? -qa | grep? -i? mysqlMySQL-client-5.6.33-1.linux_glibc2.5.x86_64php-mysqlnd-5.6.27-1.el6.remi.x86_64MySQL-shared-5.6.33-1.linux_glibc2.5.x86_64MySQL-devel-5.6.33-1.linux_glibc2.5.x86_64MySQL-server-5.6.33-1.linux_glibc2.5.x86_64MySQL-shared-compat-5.6.33-1.linux_glibc2.5.x86_64[root@mysql-2 ~]#[root@mysql-2 ~]# whereis? mysqlmysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz[root@mysql-2 ~]#[root@mysql-2 ~]#? chkconfig --list | grep -i mysqlmysql?????????? 0:off?? 1:off?? 2:on??? 3:on??? 4:on??? 5:on??? 6:off[root@mysql-2 ~]#[root@mysql-2 ~]#

2.2关闭MySQL服务

[root@mysql-2 ~]# service mysql stop

Shutting down MySQL…[ OK ]

2.3卸载mysql

  1. rpm –e --nodeps MySQL-devel-5.6.23-1.linux_glibc2.5

2.4删除文件

首先查找系统的mysql文件和目录,然后删除这些文件和目录

find / -name mysql

三、安装管理节点

管理节点使用的服务器为192.168.136.215.

3.1、下载介质

安装文件的获取有两个途径,一个是从mysql网站上获取,https://dev.mysql.com/downloads/cluster/7.5.html#downloads

如下图所示:

第二个途径是从镜像获取:

http://mirrors.sohu.com/mysql/MySQL-Cluster-7.5/

从这个url中找到符合自己操作系统的集群安装文件mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz,下载后,拷贝安装文件到215服务器上,目录可以自己指定,我使用的目录是 /home/mysql-cluster

解压后,在本地有一个目录 mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64,进入目录后,结构如下图所示:

3.2创建用户组和用户

使用如下指令创建用户和用户组:

groupadd? mysqluseradd? mysql? -g? mysql

3.3部署安装文件

使用如下命令将解压后的目录重命名:

mv mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64 /usr/local/mysql-cluster

进入到/uar/local/mysql-cluster目录,将管理程序拷贝到 bin目录:

cp bin/ndb_mgm* /usr/local/bin

修改权限: chmod +x ndb_mgm*

3.4初始化管理节点:

初始化管理节点,需执行如下命令: /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

在/usr/local/bin目录下执行 ndb_mgm命令后,在命令行窗口执行 show

至此管理节点安装完成。

四、安装数据和mysql节点

安装数据和mysql节点,使用的软件和管理节点一致,并且用户和用户组也和前面一致。数据和mysql节点使用的服务器分别为 192.168.136.216和192.168.136.217

4.1、创建用户组和用户

groupadd? mysqluseradd? mysql? -g? mysql

建立文件夹并赋予权限

mkdir? /var/lib/mysql-clusterchown? root:mysql? /var/lib/mysql-cluster

4.2、部署软件

将上一章节的软件,传到 /usr/local下,可以使用scp命令:

scp /home/mysql-cluster/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz root@192.168.136.216:/usr/localscp /home/mysql-cluster/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz root@192.168.136.217:/usr/local

进入 /usr/local目录 将上传到216和217主机的压缩包解压缩:

tar? -vxf?? mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz

解压缩后会产生mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64目录,将其重命名:

mv? mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64? mysql

4.3、初始化mysql

在/usr/local/mysql 目录下,执行 ./bin/mysqld --initialize 命令,会进行mysql的初始化操作

初始化命令的最后一行是密码,需要记住这个密码

4.4、修改目录权限

使用如下指令修改目录权限:

chown -R root:mysql? .

4.5、拷贝mysql启动命令和加入到系统服务

[root@mysql-2 mysql]# cp? support-files/mysql.server? /etc/rc.d/init.d/[root@mysql-2 mysql]#[root@mysql-2 mysql]# chmod +x? /etc/rc.d/init.d/mysql.server[root@mysql-2 mysql]#[root@mysql-2 mysql]# chkconfig? --add? mysql.server

4.6、配置数据节点:

修改mysql的配置文件:vim /etc/my.cnf

[mysqld]ndbclusterndb-connectstring=192.168.136.215[mysql_cluster]ndb-connectstring=192.168.136.215

4.7、初始化数据节点:

[root@mysql-2 mysql]# /usr/local/mysql/bin/ndbd –initial

检查进程

4.8启动mysql

/etc/init.d/mysql.server start

注意 data目录的用户和用户组都是mysql

否则启动会报告如下异常

启动完成后,切换到 215上查看,可以看到全部节点都启动

4.9添加系统环境变量

把mysql/bin目录添加到环境变量

echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile && source /etc/profile

四、验证

4.1、使用navicat工具创建mysql连接

4.2、单节点上创建数据库

在其中一个节点(mysql节点上)创建数据库educloud

刷新一下navicat工具中的数据库连接

可以看到集群里数据库的信息都更新了

4.3、创建表

在任意一个节点上的数据库educloud里面创建表:

注意建表的引擎需要用ENGINE=NDBCLUSTER;

查询另外一个节点可以看到也同样生成了表

五、启动和关闭

启动mysql集群。启动顺序为:管理节点→数据节点→SQL节点。

5.1、管理节点启停:

启动命令:

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

关闭命令:

/usr/local/bin/ndb_mgm -e shutdown

注:本例中管理节点为192.168.136.215

5.2、数据和mysql节点上启动

启动ndbd和MySQL(关闭命令:/etc/init.d/mysql.server stop)

数据节点启动:/usr/local/mysql/bin/ndbd

Mysql启动:/etc/init.d/mysql.server start

Mysql启动关闭: /etc/init.d/mysql.server stop

注:本例中管理节点为192.168.136.216, 192.168.136.217

5.3、管理节点查看状态

执行指令:/usr/local/bin/ndb_mgm 后进入交互界面:

ndb_mgm> showCluster Configuration---------------------[ndbd(NDB)]???? 2 node(s)id=3??? @192.168.136.216? (mysql-5.7.24 ndb-7.5.12, Nodegroup: 0, *)id=5??? @192.168.136.217? (mysql-5.7.24 ndb-7.5.12, Nodegroup: 0)[ndb_mgmd(MGM)] 1 node(s)id=1??? @192.168.136.215? (mysql-5.7.24 ndb-7.5.12)[mysqld(API)]?? 2 node(s)id=6??? @192.168.136.216? (mysql-5.7.24 ndb-7.5.12)id=7??? @192.168.136.217? (mysql-5.7.24 ndb-7.5.12)

第一篇:mysqlcluster数据库集群的搭建和配置相关推荐

  1. 转-Kafka【第一篇】Kafka集群搭建

    转自: https://www.cnblogs.com/luotianshuai/p/5206662.html Kafka[第一篇]Kafka集群搭建 Kafka初识 1.Kafka使用背景 在我们大 ...

  2. mysql cluster linux_【完美】Mysql-cluster数据库集群搭建(linux)

    介绍 <Mysql-cluster数据库集群介绍> 安装系统:Linux CentOS7.4查看是否安装mysqlrpm -qa | grep mysql普通删除rpm -e mysql强 ...

  3. mysql cluster双机_GitHub - sophys/mysqlha: 博客“Mysql-cluster数据库集群双机HA研究”测试代码...

    mysqlha 本代码是基于博客Mysql-cluster数据库集群双机HA研究所写的.测试采用的是32位环境,linux环境为debian,如果是其他系列只需修改部分指令即可.mysql-clust ...

  4. 大数据第一天 Hadoop01-入门集群环境搭建

    Hadoop01-入门&集群环境搭建 今日内容 ​ Hadoop的介绍 ​ 集群环境搭建准备工作 ​ Linux命令和Shell脚本增强 ​ 集群环境搭建 大数据概述 ​ 大数据: 就是对海量 ...

  5. 【愚公系列】2021年12月 Redis数据库-集群的搭建

    文章目录 一.配置机器1 二.配置机器2 三.创建集群 1.数据验证 2.在哪个服务器上写数据:CRC16 3.集群和Python交互 一.配置机器1 172.16.179.130为当前ubuntu机 ...

  6. Apace Solr集群/SolrCould搭建与配置

    简介 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是 ...

  7. 使用Docker搭建高可用Mysql数据库集群

    文章目录 前言 正文 选择哪一种搭建集群的方式 PXC Replication 安装docker Docker操作的基本命令 安装PXC集群 负载均衡 双机热备 具体实现细节 安装keepalived ...

  8. mysql 数据库集群搭建:(四)pacemaker管理三台maxscale集群,搭建mariadb读写分离中间层集群...

    为什么80%的码农都做不了架构师?>>>    <mysql 数据库集群搭建:(一)VirtualBox中多台CentOS虚拟机间和windows主机间互通以及访问互联网设置& ...

  9. MySQL数据库集群的原理与搭建

    [1.应用背景]     在最近做的项目中,因为有一个短时间内很多人访问服务,会频繁访问数据库,看到这里不免有些人会想起数据库集群.我们组长也想到了用数据库集群,于是就带着我们几个研究起来了mysql ...

最新文章

  1. PageHelper分页时超过最大数量的页数仍然返回数据,PageHelper分页失效
  2. 基于顺序存储结构的图书信息表的逆序存储(C++)
  3. WPF 4 动态覆盖图标(Dynamic Overlay Icon)
  4. Android学习小Demo(12)TodoList实现ListView的分组实现
  5. nand ECC 算法记录
  6. 路由器、交换机设备管理
  7. HTML超链接QQ在线聊天
  8. 冷库用电量计算机方式,冷库耗电量计算方法(附计算公式)
  9. 研修国学请注意选好教材
  10. 成功抗“疫”背后的IT科技
  11. 擎天哥as3教程系列第四回——设计模式运用自如
  12. Altium Designer基础知识
  13. 2018 年度读书总结
  14. 取消google二次验证码要怎么进行处理
  15. 前端——CSS部分总结
  16. 江苏旅游职业学院计算机专业,江苏旅游职业学院有哪些专业 附好的重点专业名单...
  17. 谁说Power不能云化?招商银行实力回应
  18. 星起航:抖音小店如何对接达人?
  19. mysql sql wait 写法_MySQL里的wait_timeout
  20. 刚开车时的一些基本注意点,注意事项。

热门文章

  1. 安卓手机变成横屏_安卓手机福利:这样录制手机屏幕,简单效果好!
  2. .net的DataTable.AcceptChanges解释
  3. app如何挑选云服务器,App如何选择高性价比的云服务器
  4. 一个实施工程师的自我修养
  5. 从百度文库下载的文档无法打开解决办法
  6. linux 实时 网口 速率_linux命令行查看实时网速
  7. 关于镂空正方体的作图
  8. iOS 设备获取设备相关信息
  9. WPF 使用DynamicDataDisplay 过程及获取x,y轴坐标
  10. 手把手教你制作自己的ttylinux