1 环境说明
1.1 所依赖环境
CentOS7.2 (需关闭防火墙)
JDK7
1.2 五大服务器IP部署
管理节点
MGM1:10.1.1.247
SQL服务器
SQL1:10.1.1.250
SQL2:10.1.1.251
NDB服务器
NDB1:10.1.1.248
NDB2:10.1.1.249
1.3 所需软件包
mysql-cluster-gpl-7.4.11.tar.gz
cmake-3.5.2.tar.gz
1.4 目录说明
[root@localhost ~]# vi /etc/hosts
#在文件中输入以下内容
10.1.1.247 MGM1
10.1.1.248 NDB1
10.1.1.249 NDB2
10.1.1.250 SQL1
10.1.1.251 SQL2
3 所有服务器关闭SElinux
vi /etc/selinux/config
#改成disabled
SELINUX=disabled
#SELINUXTYPE=targeted
4 安装编译代码需要的包
yum -y install make git gcc-c++ bison-devel ncurses-devel perl per-devel ncurses-devel bison
5 卸载默认的MariaDb
请参考相关的文档《卸载CentOS7默认的MariaDb.docx》
6 安装Cmake (若已经在线安装好cmake,此步可以省略)
(mysql5.6以后是通过cmake来编译的)解压cmake-3.5.2tar.gz
[root@localhost ~]# cd /data/software
[root@localhost mysql-5.7.12]# tar zxvf cmake-3.5.2.tar.gz
[root@localhost mysql-5.7.12]# cd cmake-3.5.2
[root@localhost cmake-3.5.2]# ./bootstrap
没有报错后,编译安装
[root@localhost cmake-3.0.2]# gmake
[root@localhost cmake-3.0.2]# gmake install
(时间大概需要10分钟左右)
[root@localhost cmake-3.0.2]# make && make install
7 创建数据存放目录
[root@localhost software]# mkdir -p /data/program/mysqlCluster/{bin,ndbdata,tmp}
8 新建mysql用户及用户组
# groupadd mysql
# useradd -g mysql -s /usr/sbin/nologin mysql
# chown -R mysql:mysql /data/program/mysqlCluster
9 解压缩安装包
[root@localhost ~]# cd /data/software
[root@MGM1 software]# tar xvf mysql-cluster-gpl-7.4.11.tar.gz
[root@MGM1 software]# cd mysql-cluster-gpl-7.4.11
10 编译
将以下全部拷贝到窗口执行
#注意,特别强调,下面编译参数的"="之间不能有空格
cmake -DCMAKE_INSTALL_PREFIX=/data/program/mysqlCluster \
-DMYSQL_UNIX_ADDR=/data/program/mysqlCluster/tmp/mysql-cluster.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/program/mysqlCluster/ndbdata \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306
若此步发生错误,干掉当前目录下的CMakeCache.txt,重新再执行一次
[root@MGM1 mysql-cluster-gpl-7.5.2]# make && make install
11 配置环境变量
[root@localhost software]# vi /etc/profile
#在文件中添加以下内容
export PATH=$PATH:/data/program/mysqlCluster/bin
[root@localhost software]# . /etc/profile
12 安装 My Cluster
[root@MGM1 bin]# cd /data/program/mysqlCluster/
scripts/mysql_install_db -user=mysql --basedir=/data/program/mysqlCluster --datadir=/data/program/mysqlCluster/ndbdata
注意:需要先确保 datadir 目标目录下是空的,避免误操作破坏已有数据。如果想强制初始化,那么直接删除data目录就可以了
[root@MGM1 mysqlCluster]# cp support-files/mysql.server /etc/init.d/mysql
13 管理节点配置步骤
13.1 创建配置文件目录及文件
[root@localhost mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64]# mkdir /data/program/mysqlCluster/etc
[root@localhost mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64]# vi /data/program/mysqlCluster/etc/config.ini
#config.ini配置文件如下所示
[ndb_mgmd default]
datadir=/data/program/mysqlCluster/ndbdata
[ndbd default]
NoOfReplicas = 2
DataMemory = 200M
IndexMemory = 20M
datadir=/data/program/mysqlCluster/ndbdata
[ndb_mgmd]
NodeId = 1
HostName=10.1.1.247
datadir=/data/program/mysqlCluster/ndbdata
[ndbd]
NodeId = 11
HostName=10.1.1.248
datadir=/data/program/mysqlCluster/ndbdata
[ndbd]
NodeId=12
HostName=10.1.1.249
datadir=/data/program/mysqlCluster/ndbdata
[mysqld]
NodeId = 21
HostName=10.1.1.250
[mysqld]
NodeId=22
HostName=10.1.1.251
[mysqld]
[mysqld]
[mysqld]
13.2 启动管理节点
# --initial 首次加载/data/program/mysqlCluster/etc/config.ini文件有改变,其它时候不要加,除非是在备份、恢复或配置变化后重启时,其他时候不要加,不然数据就清空。。。
[root@MGM1 bin]# ndb_mgmd -f /data/program/mysqlCluster/etc/config.ini --initial
# 正常启动方式
#如果有改动要加上
[root@MGM1 ~]# rm -rf /data/program/mysqlCluster/mysql-cluster/ndb_1_config.bin.1
[root@MGM1 bin]# ndb_mgmd -f /data/program/mysqlCluster/etc/config.ini
13.3 查看集群状态
[root@MGM1 bin]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=11 (not connected, accepting connect from 10.1.1.248)
id=12 (not connected, accepting connect from 10.1.1.249)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.1.1.247 (mysql-5.7.12 ndb-7.5.2)
[mysqld(API)] 2 node(s)
id=21 (not connected, accepting connect from 10.1.1.250)
id=22 (not connected, accepting connect from 10.1.1.251)
ndb_mgm>
关闭管理节点
ndb_mgm> shutdown
14 数据节点配置步骤
14.1 编辑my.cnf
在路径下复制一份/data/program/mysqlCluster/support-files/ my-default.cnf到/etc/my.cnf
编辑my.cnf
#vi my.cnf #编辑以下内容到文件中
ndbcluster
ndb-connectstring=10.1.1.247
[mysql_cluster]
ndb-connectstring=10.1.1.247
14.2 启动数据节点
#只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加–initial参数!
[root@SQL1 ~]# ndbd –initial
# 正常启动方式
ndbd
14.3 查看 ndbd 启动状态
[root@SQL1 ~]# ps -ef | grep ndbd
root 3209 1 0 07:35 ? 00:00:00 ndbd --initial
root 3210 3209 13 07:35 ? 00:00:02 ndbd --initial
root 3253 2936 0 07:36 pts/0 00:00:00 grep --color=auto ndbd
15 SQL节点配置步骤
15.1 设置mysqld的开机启动:
[root@NDB1 ~]# cd /data/software/mysql-cluster-gpl-7.4.11/support-files
[root@NDB1 support-files]# cp mysql.server /etc/init.d/mysql
[root@NDB1 support-files]# chmod 755 /etc/init.d/mysql
[root@NDB1 support-files]# chkconfig mysql on
15.2 编辑my.cnf
在路径下复制一份/data/program/mysqlCluster/support-files/ my-default.cnf到/etc/my.cnf
编辑my.cnf
#vi my.cnf #编辑以下内容到文件中
basedir =/data/program/mysqlCluster
datadir =/data/program/mysqlCluster/ndbdata
socket=/data/program/mysqlCluster/tmp/mysql-cluster.sock
ndbcluster
ndb-connectstring = 10.1.1.247
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
default-character-set = utf8
[mysqld]
character_set_server=utf8
[mysql_cluster]
ndb-connectstring = 10.1.1.247
[NDB_MGM]
connect-string=10.1.1.247
15.3 启动mysql
[root@NDB1 bin]# service mysql start #启动
[root@NDB1 bin]# service mysql stop #停止
[root@NDB1 bin]# service mysql restart #重启
15.4 重置root帐户的密码
#默认密码为空
[root@NDB1 bin]# mysql -u root -p
mysql> SET PASSWORD = PASSWORD('123456');
#将外部访问root 的密码设置为123456
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
16 启停顺序
启动需要按照如下顺序进行:
Management Node > Data Node > SQL Node
停止顺需要按照如下顺序进行
SQL Node > Data Node > Management Node
17 测试
17.1 从250数据节点登陆MYSQL
mysql> create database zxztest ;
Query OK, 1 row affected (0.03 sec)
mysql> use zxztest;
Database changed
mysql> create table test1(id int,name varchar(10)) engine=ndb ;
Query OK, 0 rows affected (0.15 sec)
mysql> insert into test1 values(1,'XYT');
Query OK, 1 row affected (0.02 sec)
mysql> select * from test1 ;
+------+------+
| id | name |
+------+------+
| 1 | XYT |
+------+------+
1 row in set (0.00 sec)
mysql>
17.2 登陆251数据结点,进行验证
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ndbinfo |
| performance_schema |
| test |
| zxztest |
+--------------------+
6 rows in set (0.04 sec)
mysql> use zxztest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from test1 ;
+------+------+
| id | name |
+------+------+
| 1 | XYT |
+------+------+
1 row in set (0.00 sec)
18 注意事项
1、每次修改config.ini文件,重启ndb_mgmd时,需要删除mysql-cluster文件下的ndb_1_config.bin.1文件,此处247机器目录为/data/program/mysqlCluster/mysql-cluster
大家也可以看本人在百度文库中的链接:http://wenku.baidu.com/view/c2f5532e5fbfc77da369b100