一、mysql cluster基本概念
Mysql cluster中主要涉及的节点包括:
1. Management node,主要用于管理所有的节点。
2. Data node,用于存储数据。
3. Sql node(API),用于提供sql查询服务。
在一台物理机上可以安装多个不同的节点,可以把每个节点看做一个单独的进程。
二、Mysql cluster的安装步骤:(所有的命令需要在root权限中运行)
本次安装使用两台物理机来搭建mysql cluster环境。
物理机1:
IP:192.168.1.10
系统:Ubuntu 16.04
内存:4G
硬盘容量:500G
物理机2:
IP:192.168.1.30
系统:Ubuntu 16.04
内存:4G
硬盘容量:500G
我们准备在这两台机器上安装5个节点,即1个Management node、2个Data node、2个Sql node。这些节点所在的主机为:
Management node: 192.168.1.30,即物理机2。
Data node 1:192.168.1.10
Data node 2:192.168.1.30
Sql node 1:192.168.1.10
Sql node 2:192.168.1.30
接下来就可以进行安装(注意: 在安装mysql cluster之前,需要先卸载之前安装的与mysql相关的所有软件):
l Mysql cluster的下载与安装(安装包中已经包括安装data node,management node和sql node的所有文件,所以在每台物理机上安装相关节点之前,先要解压安装Mysql cluster的包)
在http://dev.mysql.com/downloads/cluster/ 网页下载Ubuntu版本的mysql cluster(64位)7.5.4,对应mysql版本为5.7
我将下载的文件放在桌面,文件名为mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64.tar.gz。
运行命令:
sudo su
然后输入密码进入root用户模式
运行命令:
cd ~/桌面
tar –C /usr/local –xzvf mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64.tar.gz
将mysql cluster安装包解压到/usr/local 目录下
运行命令:
ln –s /usr/local/ mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64 /usr/local/mysql
建立一个指向mysql cluster解压目录的软链接
运行命令:
groupadd mysql
useradd -g mysql -s /bin/false mysql
创建mysql用户和用户组
l sql node的安装(每台物理机器的安装过程都相同,只说明在192.168.1.10机器上的安装过程)
运行命令:
cd /usr/local/mysql
bin/mysqld --initialize
这两条命令会产生一个Mysql root账户的随机密码,需要记下这个随机密码,后面会用到这个密码来登录mysql,另外在/usr/local/mysql目录中会产生一个新的名为data的目录。
运行命令:
/usr/local/mysql/bin/mysql –u root –p
然后输入刚才产生的密码(注意不要输错,这个密码很难记)
此时就进入了mysql
然后输入命令 set PASSWORD=PASSWORD(‘123456’);来修改密码为123456
修改密码成功后,可以输入命令 show database;来测试,如果命令执行成功,说明密码修改成功,然后输入\q 退出mysql
运行命令:
cd /usr/local/mysql
chown –R root .(注意这个.,指当前目录)
chown –R mysql data
chgrp –R mysql . (注意这个 . ,指当前目录)
修改一些文件和目录的权限
运行命令:
cd /usr/local/mysql
cp support-files/mysql.server /etc/init.d/
chmod +x /etc/init.d/mysql.server
update-rc.d mysql.server defaults
让mysql服务开机启动
运行命令:
cp /usr/local/mysql/bin/mysql /usr/local/bin/mysql
安装完了sql node之后可以重启计算机,启动mysql服务
l data node 的安装(每台机器的安装过程都相同)
运行命令:
cd /usr/local/mysql
cp bin/ndbd /usr/local/bin/ndbd
cp bin/ndbmtd /usr/local/bin/ndbmtd
运行命令:
cd /usr/local/bin
chmod +x ndb*
l management node的安装(只在192.168.1.30机器中安装)
运行命令:
cd /usr/local/mysql
cp bin/ndb_mgm* /usr/local/bin
cd /usr/local/bin
chmod +x ndb_mgm*
三、mysql cluster的配置和启动
l sql node 的配置:
在安装好sql node的机器上输入命令:
sudo gedit /etc/my.cnf
将这个配置文件内容改为如下(其中192.168.1.30为管理节点所在的主机IP):
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.1.30
[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=192.168.1.30 # location of management server
修改完之后可以重启计算机
l management node的配置:
运行如下命令:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
sudo gedit config.ini
将这个配置文件内容改为如下(其中192.168.1.30为管理节点所在的主机IP):
l mysql cluster 的启动
1. 在192.168.1.30 机器上启动管理节点:
sudo su
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
2. 启动数据节点,在192.168.1.10 和192.168.1.30机器上分别运行命令:
ndbd --initial
3. sql 节点是开机启动的,所以不用显示地启动
运行命令:
ndb_mgm
show
可以查看节点连接情况,如果所有的节点已经连接,则说明mysql cluster环境配置成功
l mysql cluster的关闭:
在管理节点中运行命令:
ndb_mgm –e shutdown