关闭

mysql集群搭建部署

标签: mysqlmysql集群搭建部署数据库集群
309359人阅读 评论(0) 收藏 举报
分类:

应用场景

数据存储在mysql中,单节点存储如果数据量十分大,数据就很可能存不下。因此我们需要搭建部署mysql的集群模式,增加数据的存储量,而且提到数据库访问的并发。

操作步骤

1. 概述

MySQL 群集是 MySQL 适合于分布式计算环境的高可用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在 1
个群集中运行多个 MySQL 服务器。

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL 服务器,NDB Cluster 的数据节点,管理服务器,以及(可能存在的)专门的数据访问程序。

2. 系统环境

2.1 拓扑结构

Mysql集群拓扑结构如下所示:

这里写图片描述

节点环境说明:

节点/hostname IP地址 系统 作用
管理节点 /node1 192.168.202.20 CentOS 6.6 64位 管理数据节点、sql节点
数据节点 /node2 192.168.202.21 CentOS 6.6 64位 存储数据
数据节点 /node3 192.168.202.22 CentOS 6.6 64位 存储数据
数据节点 /node4 192.168.202.23 CentOS 6.6 64位 存储数据
数据节点 /node5 192.168.202.24 CentOS 6.6 64位 存储数据
Sql节点 /sql1 192.168.202.7 CentOS 6.6 64位 给客户端提供sql服务
Sql节点 /sql2 192.168.202.8 CentOS 6.6 64位 给客户端提供sql服务

2.2 服务器配置

服务端硬件配置要求
CPU Xeon 2.4GHz 双CPU处理器
内存 12G +
硬盘 300G +
操作系统 CentOS 6.6×64
数量 7台服务器,能互相通信

3. 安装配置

3.1 准备工作

下载MySQL安装包,放于每台服务器的/usr/local/src目录下。

3.2 环境清理

安装服务端软件之前,务必检查当前服务器是否“干净”,即计算机在安装完操作系统和更新过重要补丁后没有安装过其他版本MySQL软件(解压缩等基本工具除外);

如果之前已经安装过服务端相关MySQL软件,请务必按照软件卸载说明卸载删除之前的版本。 具体操作如下:

清理之前操作系统自带的MySQL安装:
 # yum -y remove mysql
然后使用如下命令查找mysql包:
 # rpm -qa | grep mysql*
如果查找到,例如:mysql-libs-5.1.71-1.el6.x86_64,我们要对1个剩余的M与SQL包进行手动删除清理:
 # rpm  -e  --nodeps  mysql-libs-5.1.71-1.el6.x86_64

3.3 关闭防火墙和selinux

关闭防火墙
 # chkconfig iptables off
关闭 selinux
 # vim /etc/selinux/config  #(改为SELINUX=disabled)保存退出,
重启服务器
 # reboot

3.4 软件安装

由于软件安装包在/usr/local/src/目录下,需要切换到该目录进行操作。
 # cd /usr/local/src/
 # tar  -xzvf  mysql-cluster-gpl-7.4.5-linux-glibc2.5-x86_64.tar.gz
 # mv /usr/local/src/mysql-cluster-gpl-7.4.5-linux-glibc2.5-x86_64/*  /usr/local/src/mysql
注:第二个语句,解压mysql压缩包,并不一定解压到当前/usr/local/src/目录下,可能默认安装到/root/目录下,所以第三个语句要适当的改变。

3.5 新建mysql用户及用户组

按如下命令,一步步执行,进行新建mysql用户及用户组:
 # groupadd mysql
 # useradd -g mysql mysql
 # chown -R mysql:mysql /usr/local/src/mysql
 # chown -R root /usr/local/src/mysql
 # chgrp -R mysql /usr/local/src/mysql

3.6 初始化mysql集群

 # cd /home/data/usr/local/mysql
 # ./scripts/mysql_install_db  --user=mysql --basedir=/usr/local/src/mysql --datadir=/usr/local/src/mysql/data
安装目录是datadir=/usr/local/src/mysql/data

3.7 配置管理节点node1

注:删除自带的 /etc/my.cnf

切记:一定要删除掉! 因为ndb_mgmd启动的时候,也会加上/etc/my.cnf的配置内容,干扰我们,所以要删除它

具体操作如下:
 # rm -rf /etc/my.cnf
新建配置文件存放目录:
 # mkdir /usr/local/src/mysql/etc
 # chown mysql:mysql /usr/local/src/mysql/etc
创建配置文件 config.ini
 # vim //usr/local/src/mysql/etc/config.ini
config.ini内容如下:

[ndb_mgmd default]
datadir = /usr/local/src/mysql/data
[ndbd default]
NoOfReplicas = 2 #
DataMemory = 6G #
IndexMemory = 2G #
datadir = /usr/local/src/mysql/data
Default value = 20
Changed it to TimeBetweenLocalCheckpoints =6
Default value = 16M
Changed it to FragmentLogFileSize=256M
MaxNoOfTables = 10000
MaxNoOfAttributes = 100000
MaxNoOfOrderedIndexes = 10000
FileSystemPath =/usr/local/src/mysql/data
[ndb_mgmd]
NodeId = 1
HostName = 192.168.202.20
[ndbd]
NodeId = 2
HostName = 192.168.202.21
[ndbd]
NodeId = 3
HostName = 192.168.202.22
[ndbd]
NodeId = 4
HostName = 192.168.202.23
[ndbd]
NodeId = 5
HostName = 192.168.202.24
[mysqld]
NodeId = 6
HostName = 192.168.202.7
[mysqld]
NodeId = 7
HostName = 192.168.202.8
[mysqld]
[mysqld]
[mysqld]
[mysqld]

设置完成,保存退出!

3.8 配置数据节点和sql节点

注:所有的sql节点和data节点的配置文件都是一样的,都指向主节点,接受主节点管理。

拷贝文件
 # cp -rf /usr/local/src/mysql/support-files/mysql.server /etc/init.d/mysqld

mysql服务启动时会默认加载/etc/my.cnf作为其配置文件,修改节点上的my.cnf配置文件,内容如下:

[mysqld]
max_connections=100
datadir=/usr/local/src/mysql/data
basedir=/usr/local/src/mysql
ndbcluster
lower_case_table_names=1
innodb_lock_wait_timeout=500
ndb-connectstring=192.168.202.20
port=3306
[mysql_cluster]
ndb-connectstring=192.168.202.20
[ndb_mgm]
connect-string=192.168.202.20
[ndb_mgmd]
config-file=/usr/local/src/mysql/etc/config.ini

配置完成,保存退出!
MySql集群到此已经配置完成!下面我们就可以对它进行使用!

4. 集群启动

注:集群搭建完毕后,启动节点,必须按照如下启动顺序:

先启动管理节点(168.202.20 node1)

然后启动数据节点(192.168.202.21~192.168.202.24,node2 node3 node4 node5分别开启)

最后启动sql节点(192.168.202.7,192.168.202.8,sql1 sql2),具体启动操作如下所示。

4.1 启动管理节点

注:–initial 首次加载/usr/local/src/mysql/etc/config.ini文件,其它时候不要加,除非是在备份、恢复或配置变化后重启时,不然数据就清空。

初始化启动方式
 # /usr/local/src/mysql/bin/ndb_mgmd  -f  /usr/local/src/mysql/etc/config.ini --initial

正常启动方式
 # /usr/local/src/mysql/bin/ndb_mgmd  -f  /usr/local/src/mysql/etc/config.ini

查看ndb_mgmd是否启动
 #  ps -ef | grep ndb_mgmd

查看集群状态
 # /usr/local/src/mysql/bin/ndb_mgm
-- NDB Cluster -- Management Client --
 # ndb_mgm> show

关闭集群
 # ndb_mgm> shutdown

退出ndb-mgm
 # ndb_mgm> exit

4.2 启动数据节点

注:安装后第一次启动数据节点时要加上–initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时。

初始化启动方式
 # /usr/local/src/mysql/bin/ndbd  --initial

正常启动:
 # /usr/local/src/mysql/bin/ndbd

4.3 启动sql节点

启动 SQL 节点(等数据节点启动完后等待30秒后执行)
 # service mysqld start

关闭 SQL 节点
 # service mysqld stop

重启 SQL 节点
 # service mysqld restart

检验mysql是否运行
 # service mysqld status

到此,mysql集群已启动完毕,但是要像本地单机的mysql数据库一样使用,还需要以下一步操作。
1
0
查看评论

MySQL分布式集群搭建

1 准备集群搭建环境     使用6台虚拟机来搭建MYSQL集群,相应的实验环境与对应的MYSQL节点之间的对应关系如下图所示: 节点名称 节点IP 节点内存 节点硬盘大小 节点CPU MYSQL节点角色 Ubuntu-1 192...
  • benzyh
  • benzyh
  • 2017-04-04 13:42
  • 5715

CentOS服务器Mysql主从复制集群的搭建

在配置Mysql数据库主从复制集群的时候要保证:              1.主从服务器操作系统版本和位数一致。      &#...
  • jhq0113
  • jhq0113
  • 2015-03-14 21:03
  • 8100

Linux 系列(三)——Redis 分布式集群搭建

Java 数据结构在Redis的安装和部署(Linux)一文中详细介绍了在Linux环境中搭建Redis服务,本文将介绍关于Redis分布式 集群搭建细节。 一、Redis集群架构 1、Redis集群架构图 蓝色的为Redis集群中的每个node节点,节点之间通过ping 命令,测试相互是否连...
  • Daybreak1209
  • Daybreak1209
  • 2016-05-24 20:49
  • 10017

MySQL之——MySQL Cluster集群搭建详解(基于手动编译安装包)

最近,由于工作很忙的原因,有段时间没有更新博客了,今天给大家带来一篇如何搭建MySQL Cluster集群的文章,好,我们直接进入主题。 本文将搭建一个最简化的MySQL Cluster系统,配置方法中的所有命令都是以root账户运行。这个MySQL Cluster包含一个管理结点、两个数据结点、两...
  • l1028386804
  • l1028386804
  • 2016-11-07 23:39
  • 2898

linux下mysql集群搭建

第1章  环境说明 1.1 系统说明 采用三台linux服务器,均采用centos6.2版本,最小化安装系统。 1.2 软件说明 数据库管理节点,数据库节点均采用: mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz 1.3 拓...
  • yincg
  • yincg
  • 2013-04-08 15:14
  • 13129

MYSQL集群部署(二)--主备部署

补充(一)          重启虚拟机后和mysql之后,发现数据库登陆不上,报错如下: 用无密码登陆进去后,执行showdatabases;发现默认数据库mysql消失了。 结合之前的操作,想到应该是给root...
  • crazy_huang
  • crazy_huang
  • 2013-12-03 20:05
  • 1427

Linux下mysql集群搭建

目的:部署MySQL集群,减少数据库单点故障。准备:准备5台服务器,mgmd(192.168.100.1)作为管理节点,sqlA(192.168.100.2)和sqlB(192.168.100.3)作为SQL节点,ndbA(192.168.100.4)和ndbB(192.168.100.5)作为数据...
  • Mr_LeeHY
  • Mr_LeeHY
  • 2017-04-19 15:17
  • 844

mysql集群搭建教程-mysql+windows篇

搭建MySQL集群,首先看了一些关于集群的资料,然后根据步骤一步步的整,遇到了一些问题,在这里把我遇到的问题以及解决方法分享出来。【是什么】        集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、...
  • zhangchen124
  • zhangchen124
  • 2017-07-10 15:47
  • 943

MySQL集群搭建详解(三种结点分离)

本文将搭建一个最简化的MySQL Cluster系统,配置方法中的所有命令都是以root账户运行。这个MySQL Cluster包含一个管理结点、两个数据结点、两个SQL结点,这五个结点会分别安装在五个虚拟机上,虚拟机的名称和IP如下所示: 管理结点 mysq...
  • yang1982_0907
  • yang1982_0907
  • 2014-03-07 16:16
  • 30255

【MySQL集群】——在Windows环境下配置MySQL集群

到这里,整个集群的搭建和测试就完成了。假如一个数据节点宕机,并不会影响整个集群的运行,任何一个数据节点死掉甚至物理损坏都不用担心,因为每个数据节点保存的数据都是完整的一份数据(在你操作数据的时候,它早就自动为你把最新的数据备份到每一个数据节点上啦)。你可以测试一下,这时手动停止某个数据节点和sql节...
  • huyuyang6688
  • huyuyang6688
  • 2015-08-15 15:31
  • 4983
    个人资料
    • 访问:28307446次
    • 积分:27923
    • 等级:
    • 排名:第232名
    • 原创:211篇
    • 转载:0篇
    • 译文:0篇
    • 评论:12条
    博客专栏
    欢迎交流
    QQ群:365688533
    QQ :757661238
    VX :bingoxubin