大概一年前,曾经为了做某个项目专门研究了一下windows的mysql cluster,后来学习了linux,做过一个bin-log日志同步的主从复制的集群。
然而今天又是这个问题,还是搭建集群,只是环境换成了linux环境。
大部分的配置步骤是一样的,配置管理节点,配置文件,然后配置各个SQL节点和数据节点的配置文件,启动。
这次来一个和别人不一样的,我在茫茫多的百度搜索中没有找到这种安装方式,但是mysql文档的翻译早在一年前就已经把这种安装方式翻译了过来,不过毕竟是翻译嘛,无法解决很多问题。
在mysql官网上,这个叫auto-install方式,实际上就是在网页将主机地址,工作路径设置一下,然后就能自动生成一套配置文件的过程。
这个是我找到的中文文档翻译,然而看下来帮助没有想象中的大,还是windows版本的。译文地址:http://blog.csdn.net/zhounanzhaode/article/details/46827305
好了,我们开始吧。
首先,在安装之前,我们先准备好几台服务器,我这里由于用的是虚拟机,还要验证这个mysql cluster能跑,就没用太多的服务器,只用了两台,一台放管理节点,一台放两个SQL节点,两个数据节点。
在安装集群之前,需要配置mysql cluster自动安装方式的一个通信工具,paramiko。有兴趣的可以查一下,实际上就是一个基于python的远程linux的工具。
我这里用的是centos7版本,顺手关闭防火墙,省的通信出现问题。然后安装paramiko需要的依赖软件,执行命令。
yum install gcc openssl openssl-devel python python-devel pycrypto libffi libffi-devel perl-Module-Install.noarch libaio libaio-devel
这些都要装,因为我这里在安装paramiko的时候出了很多的问题,每出一个问题,我就在这行代码里面加一个俩的软件,So。。。
然后我们去github上面下载最新的paramiko代码,地址在这里:https://github.com/paramiko/paramiko/。
下载之后,只需要将paramiko-master这个文件夹中的东西,用xftp拷到服务器上面。
进入paramiko-master的目录,然后用python安装一下。执行命令。
cd ./paramiko-master
python setup.py build && python setup.py install
安装之后测试一下,输入python进入python的命令行,然后输入import paramiko,回车,没有报错就说明安装成功了。
然后,我们开始给服务器添加mysql用户,输入命令。
groupadd mysql
useradd -g mysql mysql
然后再设置一下mysql的密码,输入命令。
passwd mysql
我这里用户名密码都是mysql。
下载mysqlcluster的压缩包,我就不说的吧,地址在这里:http://dev.mysql.com/downloads/cluster/。然后将这个压缩包放到每台服务器上解压。
好了,这个时候可以开始启动网页了。该方法只能在本地进行安装,因为发布的网址不能远程访问,我不知道是我英语太菜不会用,还是人家就没打算远程访问。
进入mysql集群压缩包解压出来的文件夹中,进入bin目录,直接执行ndb_setup.py脚本。然后在控制台会提示网页启动成功。
启动之后,进入这个网页,然后就能看到这个页面。
点击创建一个新的集群。
这里设置集群使用的IP地址,应用类型和写负载等级。这里的写负载等级我说一下,小于每秒写请求小于100,是低等级,100到1000之间选择中等,1000以上选择高。
我这里采用用户名密码的方式连接两台服务器,只能支持一组用户名密码,这就要求我们的机器的用户名和密码都一样。我就直接用刚才创建的mysql用户吧。
第二页配置了一些运行环境信息,如果第二列不是都OK,那就说明paramiko连接失败了,检查一下网络连接,用户名和密码吧。345列是系统的资源信息,第六列是mysqlcluster下载之后解压的路径,第七列是数据存放路径。
第三页配置了每个服务器上都有哪些节点,在mysqlcluster中存在着5种节点,分别是。
管理节点. 执行管理任务,例如停止单个数据节点、查询节点和群集状态,并进行备份 命令: ndb_mgmd.
单线程数据节点. 存储数据和执行查询. 命令: ndbd.
多线程数据节点. 存储数据和可以以多线程的方式并行执行查询. 命令: ndbmtd.
SQL 节点. 对NDB执行SQL查询的节点,也就是我们的SQL语句都传给SQL节点,然后由SQL节点传给数据节点. 命令: mysqld.
API 节点. 通过NDB API访问NDB的客户端,不使用SQL,这里理解不深,暂时就不用了。
这一页用来定义各个节点的一些参数,例如启动端口啦,存储路径啦,什么的,其实不用怎么改。
最后一页了,三个按钮分别是部署集群,部署并启动集群,停止集群。我们就直接部署并启动了。
出现都绿了指示就表示成功了。
下篇博客测试主从复制和读写分离。