MYSQL集搭建部署详细步骤
写给⾃⼰看的,需要参考的话,请直接去下⾯的参考连接。
⽬录
前⾔
mysql cluster中的⼏个概念解释
架构图及说明
下载mysql cluster
安装mysql cluster之前
安装配置管理节点
安装配置数据和mysql节点
测试
启动和关闭
总结
前⾔
当你的业务到达⼀定的当量,肯定需要⼀定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有⼀个问题就是数据同步,因为负载均衡的前提就是,各个服务器的数据库是数据同步的。在业务量不⼤的时候,我们会使⽤主从复制的⽅法实现服务器数据同步,⼀主多从或者是双主等,但是虽然进⾏了读写分离,但是对于读的⽅法限制还是⽐较⼤,所以解决数据同步的问题就是数据库集的意义。我这⾥使⽤mysql官⽹提供的mysql-cluster实现集。(到⽂章发布前的最新版本的安装教程,把⽹上踩的坑都踩过了⼀遍;)
mysql cluster中的⼏个概念解释
为了简单,我后⾯简称mysql-cluster为mc。
1、mc已经包含了mysql,我下载的最新的mc7.5,官⽅说明包含的是mysql版本是5.7。所以不需要使⽤别的msyql的安装包安装数据库。同时注意mysql5.7的版本在安装的命令和配置上⾯和之前的版本有很⼤的不同,所以⽹上有很多mc7.5之前的版本,所包含的mysql 版本不同,所以安装⽅法不同。
2、管理节点,mc管理节点负责管理、配置、监控整个集。
3、数据节点,使⽤内存存放数据,保存进数据节点的数据都会⾃动复制并存储到其他数据节点。
4、mysql节点,也叫数据库节点,和我们平时使⽤的mysql相同,作为数据库使⽤。被数据节点访问。
架构图及说明
我实验中的配置就是如图所⽰,因为虚拟机占⽤内存较⼤,只使⽤了3台服务器,在实际情况中最好将数据节点和mysql节点分开。在实际中负载均衡服务还需要做备份,因为万⼀负载均衡服务器宕机将会导致所有数据节点都⽆法访问,所以需要对负载均衡服务器备份,有条件的话,分开管理节点和负载均衡器。实验只实现整个数据库集,负载均衡请参考之前的博客配置即可。
129的负载均衡可以参考 HAProxy实现mysql负载均衡 也可以使⽤的别的负载均衡⽅案。
下载mysql cluster
⾸先下载mysql cluster,推荐使⽤下⾯的镜像,下载速度⽐官⽹快⼀些
我下载的版本是mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_
注意看清是64位版本的,别下载错了
安装mysql cluster之前
安装之前,如果之前安装过mysql,那么需要删除相应的各种mysql⽂件,删除之前请停⽌mysql服务。并且不要忘记删除myf这些配置⽂件。确保删除⼲净。不然可能会和后⾯的安装有冲突。如果是实验,关闭防⽕墙,实际中,防⽕墙打开对应端⼝,{注意实际中需要使⽤的端⼝不只有3306端⼝,还有同步需要使⽤的1186端⼝}。保证服务器之前能互相访问,能ping通。保证固定的ip地址。保证没有别的程序占⽤需要使⽤的端⼝。如3306等。这些都确认完毕后再进⾏安装。需要linux基础的命令熟练,需要熟练安装mysql基本版本等操作,因为后序的⼀些操作我会简单描述,不做过多的说明了。
安装配置管理节点
将下载后的包上传⾄服务器/usr/local下
解压
# tar xvf mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_
将需要的⽂件取出
# cd mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64
# cp bin/ndb_mgm* /usr/local/bin
# cd /usr/local/bin
# chmod +x ndb_mgm*
新建配置⽂件并且初始化管理节点
# mkdir /var/lib/mysql-cluster
# mkdir /usr/local/mysql
# vi /var/lib/mysql-cluster/config.ini
下⾯是配置⽂件,根据⾃⼰的需求修改,⾸先给出官⽹的默认配置⽂件,然后给出我的配置⽂件,根据我修改的修改即可,别的均可不动。+ View code
+ View code
使⽤配置⽂件初始化管理节点
# /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
出现MySQL Cluster Management Server mysql-5.7.16 ndb-7.5.4
然后就能使⽤ndbd进去管理了(如果ndbd命令不⾏,就使⽤在/usr/local/bin⽬录下使⽤ndb_mgm命令)
# ndbd
ndb_mgm>show(使⽤show命令查看管理情况,当数据节点配置完毕之后,我们再⽤这个命令查看和管理)
到此为⽌管理节点配置完毕,接下去配置数据和sql节点
安装配置数据和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下
解压
# tar xvf mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_
创建链接⽅便访问
# ln -s /usr/local/mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64 /usr/local/mysql
初始化数据库(这⾥要注意,如果你安装的版本和我的不同,数据库初始化的命令使不同的,很多之前的版本会使⽤:
scripts/mysql_install_db --user=mysql来初始化,这个已经被mysql在新的版本中废弃了,所以需要使⽤下⾯的命令安装,如果你需要安装别的版本请参考mysql官⽹的对应版本的安装命令。)
进⼊刚才创建的⽬录下
# cd /usr/local/mysql
如果下⽅这个命令⽆法使⽤,那么就进⼊bin⽬录下使⽤./mysqld --initialize进⾏初始化,总之正常安装mysql如何初始化就如何进⾏安装就可以了,这⾥还可以设置安装数据库的data⽬录等参数这⾥就不多解释了,⽹上安装mysql5.7的教程很多。
# mysqld --initialize
如果初始化成功之后,系统会提⽰⼀个随机⽣成的数据库密码,此时需要记住这个密码,之后登录数据库需要使⽤这个密码
修改权限
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# cp support-files/mysql.server /etc/rc.d/init.d/
# chmod +x /etc/rc.d/init.d/mysql.server
# chkconfig --add mysql.server
配置数据节点
# vi /etc/myf
+ View code
其中的IP为管理节点的IP
启动集节点上⾯的服务启动mysql(成功会有success)# /etc/init.d/mysql.server start
启动mysql成功之后请⾃⼰登录进mysql内然后进⾏密码修改等操作,就和正常安装完成mysql的操作⼀样。需要注意的是,集数据库的密码需要相同哦!
启动ndbd# /etc/init.d/ndbd --initial如果上述不⾏使⽤绝对路径的这个:# /usr/local/mysql/bin/ndbd --initial如果出现下述现象就成功了
2017-03-06 14:04:07 [ndbd] INFO    -- Angel connected to '192.168.75.129:1186'
2017-03-06 14:04:07 [ndbd] INFO    -- Angel allocated nodeid: 2
最后当所有的节点配置完成,回到管理节点,使⽤上述说过的show查看,如下的类似显⽰,证明已经连接完成
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]    2 node(s)
id=2 (not connected, accepting connect from 192.168.75.128)
id=3    @192.168.75.130  (mysql-5.1.63 ndb-7.1.23, starting, Nodegroup: 0)
[ndb_mgmd(MGM)]    1 node(s)
id=1    @192.168.75.129  (mysql-5.7.16 ndb-7.5.4)
[mysqld(API)]    2 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
测试
修改mysql密码统⼀,修改mysql的访问权限,使外部ip能远程访问mysql
然后创建在⼀台上⾯创建数据库,看另⼀台是否被同步,然后创建表,然后新增删除等等。
mysql下载不了怎么办唯⼀需要注意的是,创建表的时候必须选择表的引擎为NDBCLUSTER,否则表不会进⾏同步
下⾯是测试的截图
如果使⽤sql创建表,命令为:CREATE TABLE student (age INT) ENGINE=NDBCLUSTER
启动和关闭
启动mysql集。启动顺序为:管理节点→数据节点→SQL节点。
启动的命令上⾯都有,删去--initial即可
关闭时只需要关闭管理节点,后⾯的数据节点会同时被关闭,mysql就和原来⼀样即可
管理节点关闭命令:ndb_mgm -e shutdown
(执⾏完成之后管理节点会关闭,数据节点也会关闭,但SQL节点不会,也就是数据库服务需要⼿动到每⼀台服务器上停⽌以保证数据同步)
总结
1、在实际中需要分开数据节点和sql节点。
2、安装最好参考官⽹的⽂档进⾏配置安装,⽹上的博客安装的可能为旧版本,命令可能不同,连我⾃⼰现在写的不知道你看的时候是不是官⽹⼜出了新版本,可能在某些地⽅进⾏了改动。
3、配置⽂件过于简单,还有很多配置会在实际中被使⽤到,需要参考⽂档进⾏添加。(myf⽂件的配置需要根据你的实际进⾏修改)
4、架构简单,实验⾜够,现实远不⾜。(需要使⽤备份数据库,要备份管理节点等)
5、还未测试各种节点断开、服务器停⽌、数据库服务停⽌、是否会出现数据异常等等特殊情况,还需要进⾏考虑。因为⼀旦数据不同步,想要恢复数据会⽐较⿇烦。(之后经过测试,数据库服务停⽌之后,或者服务器停⽌之后,只要管理节点正常,数据会之后在开启之后同步过去,但是为了防⽌万⼀还是需要做好数据备份⼯作)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。