Linux下构建MySQL集群

2014-11-24 17:14:13 · 作者: · 浏览: 0

一、目标


1.安装MySQL-Cluster相关软件包。


2.依次配置管理/数据/SQL节点。


3.启动并测试MySQL-Cluster集群架构。


二、方案


使用6台RHEL 6.5虚拟机,如图所示。其中sql1和sql2作为SQL节点,ndb1和ndb2作为数据节点,mgmsvr作为管理节点,这5个构成MySQL集群体系的5个节点应安装Cluster版的MySQL相关软件包;测试用的Linux客户机只需安装普通版的MySQL-client即可。


Linux下构建MySQL集群


--------------------------------------分割线 --------------------------------------


--------------------------------------分割线 --------------------------------------


三、实现


1、准备工作


1)确认各节点服务器的IP地址,使各节点能互通,防火墙和selinux处于关闭状态。


关闭防火墙:


# iptables -F //清空防火墙条目


# service iptables stop //关闭防火墙


# chkconfig iptables off //开机不自启


关闭selinux:


vim打开 /etc/selinux/config修改SELINUX=disabled


# getenforce 0


2)卸载所有节点上的冲突包


官方提供的MySQL-Cluster相关软件包(可在这里获得 http://pan.baidu.com/s/1pJv46j5 )已集成数据库服务端/客户端程序,因此可直接用来替换普通的MySQL服务端/客户端程序。如果已安装有普通版的mysql-server、mysql、MySQL-server、MySQL-client包,先将其卸载(若没有则忽略):


# rpm -qa | grep -i mysql //检查有没有安装普通版的mysql软件


对于RHEL自带的mysql-libs暂时保留(如果直接卸载会因为依赖关系删除许多重要的包,比如crontab、postfix等),但在安装MySQl-Cluster相关包的时候采用“-U”升级的方式执行替换。


# rpm -e --nodeps MySQL-client


如果有残留的/etc/my.cnf文件,确保已转移备用或直接删除。


# mv /etc/my.cnf /etc/my.cnf.bak


3)在所有节点上,解压下载的MySQL-Cluster集合包


# tar xvf MySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar


MySQL-Cluster-shared-gpl-7.3.3-1.el6.x86_64.rpm



MySQL-Cluster-shared-compat-gpl-7.3.3-1.el6.x86_64.rpm //安装共享库和兼容包


MySQL-Cluster-server-gpl-7.3.3-1.el6.x86_64.rpm //安装服务端程序


MySQL-Cluster-client-gpl-7.3.3-1.el6.x86_64.rpm //安装客户端程序


MySQL-Cluster-test-gpl-7.3.3-1.el6.x86_64.rpm


MySQL-Cluster-devel-gpl-7.3.3-1.el6.x86_64.rpm


MySQL-Cluster-embedded-gpl-7.3.3-1.el6.x86_64.rpm



在SQL节点(sql1、sql2)服务器上,修改MySQL数据库的root密码:


[root@sql1 ~]# service mysql start //启动MySQL服务程序


Starting MySQL... [确定]


[root@sql2 ~]# cat /root/.mysql_secret


# The random password set for the root user at Wed Sep 3 21:04:20 2014 (local time): msA7Bq2B



[root@sql1 ~]# mysql –u root –pmsA7Bq2B //以上述默认密码登录


mysql> set password=password("123456");


Query OK, 0 rows affected (0.17 sec)


在数据节点(ndb1、ndb2)和管理节点(mgmsvr)上,实际上并不需要启动MySQL服务程序,因此建议将mysql服务的自启状态设为关闭


[root@ndb1 ~]# chkconfig mysql off


4)在sql节点添加授权数据库用户


在SQL节点(sql1、sql2)服务器上,添加相应的授权数据库用户,以方便客户端使用数据库服务。以用户user为例,允许其从192.168.4.0/24网段访问:



mysql> grant all on *.* to user@'192.168.4.%' identified by "123456";


Query OK, 0 rows affected (0.03 sec)



2、配置管理节点mgmsvr(192.168.4.3)


1)创建工作文件夹


为管理节点提供一个工作目录,方便记录mysql集群相关的日志消息:


[root@mgmsvr ~]# mkdir /var/log/mysql-cluster


2)创建配置文件


在管理节点的配置文件中,应涵盖所有节点的设置,主要包括各节点的ID号、主机名或IP地址、工作目录等信息。


针对本实验,管理节点的配置参考如下:


[root@mgmsvr ~]# cat /etc/config.ini //文件名可以随意


[ndbd default] //为所有的节点指定默认配置


NoOfReplicas=2//保留2份数据拷贝


DataMemory=80M//数据缓存大小


IndexMemory=18M//索引缓存大小


[ndb_mgmd]//指定一个管理节点的配置,可以有多个管理节点


nodeid=3//节点的id号,作为节点的唯一识别码,不可以与其他节点相同


hostname=192.168.4.3 //节点的ip地址


datadir=/var/log/mysql-cluster //该管理节点的工作目录


[ndbd]//指定数据节点的配置,每个数据节点对应一个ndbd配置


nodeid=4


hostname=192.168.4.4


datadir=/var/log/mysql-cluster/data


[ndbd]


nodeid=5


hostname=192.168.4.5


datadir=/var/log/mysql-cluster/data


[mysqld]//指定SQL节点的配置,每个SQL节点对应一个配mysqld置


nodeid=6


hostname=192.168.4.6


[mysqld]


nodeid=7


hostname=192.168.4.7