一、安装前规划
1、安装软件版本:mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz
2、安装规划:
主机名 |
Ip地址 |
角色 |
db01 |
192.168.100.131 |
管理节点 |
db02 |
192.168.100.132 |
SQL节点 |
db03 |
192.168.100.133 |
SQL节点 |
db04 |
192.168.100.134 |
data节点 |
db05 |
192.168.100.135 |
data节点 |
3、配置/etc/hosts文件(所有节点):
192.168.100.231 db01
192.168.100.232 db02
192.168.100.233 db03
192.168.100.234 db04
192.168.100.235 db05
二、安装NDB Cluster
1、SQL节点安装:
在每一个被指定为SQL节点的主机上,使用root用户执行以下步骤:
1)检查你的操作系统上是否已经创建了mysql组及mysql用户,一些操作系统在安装时会预创建mysql组及mysql用户,如果你的操作系统上没有创建这些,那么通过如下步骤创建mysql组及mysql用户。
shell> groupadd mysql
shell> useradd -g mysql -s /bin/false mysql
2)在本地操作系统下载mysql软件目录中,解压安装软件,并移动到/usr/local/目录下,根据需要是否使用软连接(ln -s)。
shell> cd /mnt
shell> tar -C /usr/local -xzvf mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz
shell> ln -s /usr/local/mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64 /usr/local/mysql
3)进入到本地的mysql安装目录,并且通过mysqld --initialize命令初始化mysql系统数据库。
shell> cd mysql
shell> mysqld --initialize
当然,你也可以进入mysql安装目录,通过mysql_install_db命令初始化mysql系统数据库。
shell> cd mysql
shell> scripts/mysql_install_db --user=mysql
然而,这种方式是不推荐使用的,因为mysql_install_db将被弃用在以后的版本中。
4)为mysql服务器和data目录设置必要的权限。
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
5)copy mysql启动脚本到/etc/rc.d/init.d/下,并且设置可执行文件,然后通过chkconfig命令添加为服务。
shell> cp support-files/mysql.server /etc/rc.d/init.d/
shell> chmod +x /etc/rc.d/init.d/mysql.server
shell> chkconfig --add mysql.server
记住,必须在每一台SQL节点上执行以上步骤。
2、data节点安装:
安装data节点不需要mysql二进制文件,仅需要在NDB cluster的data节点执行ndbd(single-treaded) or ndbmtd(multi-threaded),mysql二进制安装文件也包含在以上的tar包中。
以root用户登录操作系统,执行以下步骤安装data 节点在每一台data 节点服务器上。
1)进入到mysql下载目录下,并且抓取这个ndbd和ndbmtd二进制文件到/usr/local/bin/目录下,
shell> cd /mnt
shell> tar -zxvf mysql-5.7.17-ndb-7.5.6-linux-i686-glibc23.tar.gz
shell> cd mysql-5.7.17-ndb-7.5.6-linux-i686-glibc23
shell> cp bin/ndbd /usr/local/bin/ndbd
shell> cp bin/ndbmtd /usr/local/bin/ndbmtd
在ndbd和ndbdmtd已经复制到/usr/local/bin/下后,你也可以删除mysql解压目录和下载文件,并且这是非常安全的。
2)进入到/ust/local/bin/目录下,将步骤1 copy的ndbd和ndbmtd文件设置为可执行文件。
shell> cd /usr/local/bin
shell> chmod +x ndb*
执行以上这些步骤在每一台data节点服务器上。
3、Management 节点安装:
安装管理节点不需要mysql二进制文件,仅需要安装NDB cluster management server (ndb_mgmd),并且你可能还想安装management client (ndb_mgm),所有的这些都可以在tar包中发现。
以root用户身份登录操作系统,执行安装ndb_mgmd 和ndb_mgm命令在management节点服务器上。
1)进入到mysql解压目录,抓取ndb_mgmd和ndb_mgm二进制文件copy到/usr/local/bin/目录下。
shell> cd /var/tmp
shell> tar -zxvf mysql-5.7.17-ndb-7.5.6-linux2.6-i686.tar.gz
shell> cd mysql-5.7.17-ndb-7.5.6-linux2.6-i686
shell> cp bin/ndb_mgm* /usr/local/bin
你也可以删除mysql解压目录和下载文件,并且这是非常安全的。
2)进入到/ust/local/bin/目录下,将步骤1 copy的ndb_mgmd和ndb_mgm文件设置为可执行文件。
shell> cd /usr/local/bin
shell> chmod +x ndb_mgm*
三、配置NDB Cluster
这里描述如何通过最小化配置部署一个NDB cluster集群。
说明:每一个data节点和SQL节点需要配置一个my.cnf文件,并且提供两个选项的说明:其中一个告诉哪里可以找到management节点;另一个告诉mysql 服务器这个主机是否启动NDB Cluster存储引擎。
管理节点需要配置一个congin.ini的配置文件,它描述了集群存在几个副本,在每一个节点为数据和索引各分配多少内存,数据节点在哪里,每一个数据节点中在磁盘的哪里保存数据,以及存在哪些SQL节点。
1、配置数据节点和SQL节点
数据节点和SQL节点在my.cnf文件所需要的配置相当简单,并且这个文件应该放在/etc/目录下,可以通过任何编辑器对其进行编辑,例如:
shell> vi /etc/my.cnf
每个数据节点和SQL节点配置可以参考如下内容:
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=192.168.0.10 # location of management server
本例中每个sql节点和data节点/etc/my.cnf示例配置如下:
[mysqld] basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data/ user=mysql log-error=/usr/local/mysql/data/sqlnode.err ndbcluster ndb-connectstring=db01 [mysql_cluster] ndb-connectstring=db01 |
2、配置管理节点
配置管理节点的第一步是创建目录和创建配置文件本身(以root用户身份执行)。
shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini
管理节点的config.ini配置文件内容可能如下:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[tcp default]
# TCP/IP options:
portnumber=2202 # This the default; however, you can use any
# port that is free for all the hosts in the cluster
# Note: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used
# instead
[ndb_mgmd]
# Management process options:
hostname=192.168.0.10 # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node log files
[ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
hostname=192.168.0.30 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[ndbd]
# Options for data node "B":
hostname=192.168.0.40 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[mysqld]
# SQL node options:
hostname=192.168.0.20 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
本例中管理节点config.ini文件内容如下:
[ndbd default] NoOfReplicas=1 DataMemory=100M IndexMemory=80M [tcp default] portnumber=2202 [ndb_mgmd] hostname=db01 datadir=/var/lib/mysql-cluster [ndbd] hostname=db04 datadir=/usr/local/mysql/data [ndbd] hostname=db05 datadir=/usr/local/mysql/data [mysqld] hostname=db02 [mysqld] hostname=db03 |
说明:mysql cluster默认管理节点端口号是1186,;默认数据节点端口号是2202;然而,集群可以自动获得端口为哪些自由的数据节点。
四、启动集群
在成功配置后启动集群并不是很困难,每个解决节点必须分别被启动,首先启动管理节点,其次启动数据节点,最后再启动SQL节点。
1、在管理节点主机上,在shell中输入如下内容用于启动管理节点:
shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2、在每一个数据节点上,shell下运行ndbd命令用于启动数据节点:
shell> ndbd
3、在每一个sql节点上,通过mysql启动命令启动SQL节点:
shell>service mysqld start
如果一切顺利,集群可以正确启动,现在你可以进行一些测试操作。你可以使用管理节点客户端测试工具ndb_mgm,输出当前的集群配置信息及运行状态。
ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @192.168.100.234 (mysql-5.6.34 ndb-7.4.13, Nodegroup: 0, *) id=3 @192.168.100.235 (mysql-5.6.34 ndb-7.4.13, Nodegroup: 1) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.100.231 (mysql-5.6.34 ndb-7.4.13) [mysqld(API)] 2 node(s) id=4 @192.168.100.232 (mysql-5.6.34 ndb-7.4.13) id=5 @192.168.100.233 (mysql-5.6.34 ndb-7.4.13) |
五、关闭集群
想要关闭集群,在管理节点主机的shell下输入如下命令:
shell> ndb_mgm -e shutdown
这个-e命令可以安全的kill掉运行 ndb_mgm, ndb_mgmd, ndbd 或者 ndbmtd的进程。
如果想要关闭sql节点,应该使用mysql停止服务方法。