mysql集群搭建部署-阿里云开发者社区

开发者社区> wsc449> 正文

mysql集群搭建部署

简介: 应用场景 数据存储在mysql中,单节点存储如果数据量十分大,数据就很可能存不下。因此我们需要搭建部署mysql的集群模式,增加数据的存储量,而且提到数据库访问的并发。
+关注继续查看

应用场景

数据存储在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数据库一样使用,还需要以下一步操作。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mysql集群的备份与还原
应用场景 当使用mysql集群数据库的时候,有时候会误删一些数据,那么数据就缺失了完整性,现在需要将数据进行备份,将误删的数据还原出来,这样保证数据的完整性。
1044 0
mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
  数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境。 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡。
1031 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9994 0
使用innobackupex基于从库搭建mysql主从架构
        MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一。但对于较大的数据库则该方式并非理想的选择。使用Xtrabackup可以快速轻松的构建或修复mysql主从架构。
1164 0
mysql集群的优缺点
应用场景 在使用mysql集群之前,先仔细了解mysql集群的优缺点,在应用场景中充分发挥集群的优点,才能把mysql集群技术用到刀刃上。
1331 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13790 0
Kubernetes 部署 MySQL 集群
在有状态应用中,MySQL是我们最常见也是最常用的。本文我们将实战部署一个一组多从的MySQL集群。
2478 0
+关注
wsc449
python,c#,scala
232
文章
4
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载