一、基础环境信息
操作系统:CentOS-6.8-x86_64-minimal
MySQL cluster版本:MySQL-Cluster-gpl-7.4.15-1.el6.x86_64.rpm-bundle.tar
依赖包:numactl-2.0.9-2.el6.x86_64(可以通过yum -y install numactl安装)
清理环境:卸载所有和mysql有关的东西
rpm -qa | egrep 'mysql|mariadb'
rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps
二、服务架构
管理节点:
192.168.235.133
192.168.235.134
数据节点:
192.168.235.133
192.168.235.134
SQL nodes:
192.168.235.133
192.168.235.134
三、部署流程
1)卸载所有和mysql有关的东西(清理环境)
rpm -qa | egrep 'mysql|mariadb'
rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps
2)解压
tar -xvf MySQL-Cluster-gpl-7.4.15-1.el6.x86_64.rpm-bundle.tar
MySQL-Cluster-client-gpl-7.4.15-1.el6.x86_64.rpm
MySQL-Cluster-shared-compat-gpl-7.4.15-1.el6.x86_64.rpm
MySQL-Cluster-embedded-gpl-7.4.15-1.el6.x86_64.rpm
MySQL-Cluster-server-gpl-7.4.15-1.el6.x86_64.rpm
MySQL-Cluster-shared-gpl-7.4.15-1.el6.x86_64.rpm
MySQL-Cluster-test-gpl-7.4.15-1.el6.x86_64.rpm
MySQL-Cluster-devel-gpl-7.4.15-1.el6.x86_64.rpm
3)部署管理节点:
mkdir/mysql-cluster/
chown -R mysql:mysql /mysql-cluster/
rpm -ivh MySQL-Cluster-server-gpl-7.4.15-1.el6.x86_64.rpm(需要以下依赖)
yum -y install numactl
4)部署数据节点:
mkdir /mysql-cluster/
chown -R mysql:mysql /mysql-cluster/
rpm -ivh MySQL-Cluster-server-gpl-7.4.15-1.el6.x86_64.rpm(需要以下依赖)
yum -y install numactl
5)部署SQL节点:
mkdir /mysql-cluster/
chown -R mysql:mysql /mysql-cluster/
rpm -ivh --badreloc --relocate /usr/bin/=/mysql-cluster MySQL-Cluster-server-gpl-7.4.15-1.el6.x86_64.rpm(需要以下依赖)
yum -y install numactl
rpm -ivh MySQL-Cluster-client-gpl-7.4.15-1.el6.x86_64.rpm
四、配置
1)管理节点配置
mkdir -p /data/mysql-mgm /data/logs/mysql-mgm
chown -R mysql:mysql /data/logs/mysql-mgm
chown -R mysql:mysql /data/mysql-mgm
vim /etc/my-mgm.cnf
DataDir=/data/mysql-mgm
LogDestination=FILE:filename=/data/logs/mysql-mgm/ndb_cluster.log,maxsize=104856700,maxfiles=6(管理节点的日志存放路径,以及大小和保留份数)
[ndb_mgmd]
HostName=192.168.235.133
PortNumber=3827
NodeId=1
[ndb_mgmd]
HostName=192.168.235.134
PortNumber=3827
NodeId=2
[ndbd default]
NoOfReplicas=2(指定数据在整个集群的份数)
LockPagesInMainMemory=1
DataMemory=500M
IndexMemory=100M
ODirect=1
DataDir=/data/mysql-data(指定数据节点的工作目录)
ServerPort=10000(指定数据节点的监听端口)
[ndbd]
HostName=192.168.235.133
[ndbd]
HostName=192.168.235.134
[mysqld]
HostName=192.168.235.133
[mysqld]
HostName=192.168.235.134
2)数据节点配置
mkdir -p /data/mysql-data
chown -R mysql:mysql /data/mysql-data/
vim /etc/my-data.cnf(不同节点注意修改bind-address)
[mysqld]
ndbcluster
bind-address=192.168.235.133
[mysql_cluster]
ndb-connectstring=192.168.235.133:3827
ndb-connectstring=192.168.235.134:3827
3)SQL节点
mkdir /data/mysql-sql
chown -R mysql:mysql /data/mysql-sql/
mkdir data/logs/mysql-sql/
chown -R mysql:mysql /data/logs/mysql-sql/
vim /etc/my-sql.cnf
[mysqld]
ndbcluster
bind-address=192.168.235.133
port=3306
log-error=/data/logs/mysql-sql/mysqld.log
default-storage-engine=ndb
character-set-server=utf8
[mysql_cluster]
ndb-connectstring=192.168.235.133:3827
ndb-connectstring=192.168.235.134:3827
五、启动服务
1)概述:
先启动管理节点,在启动数据节点,最后启动SQL节点
2)启动管理节点:
ndb_mgmd -f /etc/my-mgm.cnf --configdir=/data/mysql-mgm
注:在更改过配置文件后,需要以--initial或者--reload方式来加载
查看集群状态:
ndb_mgm 192.168.235.133:3827
ndb_mgm> show;
3)启动数据节点:
ndbd --defaults-file=/etc/my-data.cnf
4)启动SQL节点:
注:因为改变了默认配置,需要重新初始化
mysql_install_db --defaults-file=/etc/my-sql.cnf --user=mysql
/usr/bin/mysqladmin -u root password '123456
启动:
cd /data/logs/mysql-sql/ && nohup mysqld --defaults-file=/etc/my-sql.cnf --user=mysql --explicit_defaults_for_timestamp &
六、关闭服务
1)SQL节点关闭:
mysqladmin -u root -p123456 shutdown
2)管理节点与数据节点关闭:
ndb_mgm -e shutdown(数据节点会随着管理节点一同关闭)
七、测试服务
注:在集群中创建表时需添加ENGINE=NDB;
mysql> create onetest;
mysql> use onetest;
mysql> create table test(name varchar(10)) engine=ndbcluster charset=utf8;