您的位置:首页 > 数据库 > MySQL

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

2016-04-10 13:35 621 查看
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流量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: