【小镇的技术天梯】lanmp服务器集群搭建(4)mysql-cluster集群搭建

lanmp集群搭建的重点来了,这次是搭建mysql集群,mysql集群可以说是重中之重,因为最需要用集群的地方是mysql,现在的web应用的瓶颈基本上都在mysql的负载上面。

【小镇还是要提醒下大家,其实提升mysql性能的最好方法是写性能高的mysql语句和加装ssd固态硬盘】。下面大家来看下mysql集群的结构图,如下图所示:


从结构图可以看出,mysql集群分为三个部分。对外提供服务的是SQL节点,也就是图中的SQL server,存储数据的是ndbd数据节点,是图中的NDB-cluster,最后一台服务器为Management Server,是管理mysql-cluster的。

搭建mysql集群最少需要3台服务器,小镇这边用5台服务器,因为这样更能分割开功能。

首先,小镇在虚拟机创建192.168.1.130-134总共5台服务器,系统为centos7.2,如下图所示:


首先在所有的服务器中都安装上mysql-cluster,这边小镇装的是mysql-cluster-gpl-7.4.6-linux-glibc2.5  64位的。这是个已经编译好的安装包,只要解压到/usr/local/mysql目录中就行了。

第一步,配置管理节点,配置mysql-cluster的配置文件。创建/var/lib/mysql-cluster目录,在其中创建文件config.ini,文件内容如下:

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M

[ndb_mgmd]
NodeId=1
hostname=192.168.1.130
datadir=/var/lib/mysql-cluster

[ndbd]
NodeId=2
hostname=192.168.1.131
datadir=/usr/local/mysql/data

[ndbd]
NodeId=3
hostname=192.168.1.132
datadir=/usr/local/mysql/data

[mysqld]
NodeId=4
hostname=192.168.1.133

[mysqld]
NodeId=5
hostname=192.168.1.134
最上面的大小大家根据自己服务器的内存大小自行调节。


第二步,配置数据节点

1. 添加mysql组和用户
在shell中运行以下命令:
groupadd mysql
useradd -g mysql mysql

2. 配置my.cnf配置文件
在shell中运行以下命令:
gedit /etc/my.cnf

内容如下:

<span style="font-size:18px;">[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/sock/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql_cluster]
ndb-connectstring=192.168.1.130</span>

3. 创建系统数据库
在shell中运行以下命令:
cd /usr/local/mysql
mkdir sock
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data


4. 设置数据目录
在shell中运行以下命令:
chown -R root .
chown -R mysql.mysql /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/sock
chgrp -R mysql .


5. 配置MySQL服务
在shell中运行以下命令:
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server


第三步:配置sql节点

1. 添加mysql组和用户
在shell中运行以下命令:
groupadd mysql
useradd -g mysql mysql

2. 配置my.cnf配置文件
在shell中运行以下命令:
gedit /etc/my.cnf

内容如下:

[client]
socket=/usr/local/mysql/sock/mysql.sock

[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/sock/mysql.sock
ndb-connectstring=192.168.1.130

[mysql_cluster]
ndb-connectstring=192.168.1.130

3. 创建系统数据库
在shell中运行以下命令:
cd /usr/local/mysql
mkdir sock
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data


4. 设置数据目录
在shell中运行以下命令:
chown -R root .
chown -R mysql.mysql /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/sock
chgrp -R mysql .


5. 配置MySQL服务
在shell中运行以下命令:
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server


第四步:启动mysql集群。

1. 启动管理结点
在shell中运行以下命令:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini

还可以使用ndb_mgm来监听客户端,如下:
ndb_mgm

2. 启动数据结点
首次启动,则需要添加--initial参数,以便进行NDB节点的初始化工作。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。
/usr/local/mysql/bin/ndbd --initial

如果不是首次启动,则执行下面的命令。
/usr/local/mysql/bin/ndbd

3. 启动SQL结点
若MySQL服务没有运行,则在shell中运行以下命令:
/usr/local/mysql/bin/mysqld_safe --user=mysql &

现在mysql-cluster就搭建完成了,只有133和134结点是对外服务的。这时候在133中建立一张表test,发现134中的表也相应的同步了,后面的web应用就可以使用133和134节点来进行相应的mysql交互了,小镇会在下篇文章介绍使用haproxy负载均衡133节点和134节点的mysql流量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值