mysql cluster安装及使用--源代码编译版

安装版本:mysql-cluster-gpl-7.2.15.tar.gz    
操作系统 :centos6.4(X64)    
二.搭建sql节点(2个),data节点(2个),manage节点(1个)---源代码版本
配置步骤:
1.网络规划
managerment node :10.10.54.57
data node:10.54.56/58
sql node:10.10.54.56/58
2.停止各个节点的mysql服务
/etc/init.d/mysqld stop
##避免对mysql的破坏,需移动文件
mv /usr/local/mysql /usr/local/mysql_bak
3.管理节点安装配置
(1)安装mysql-cluster
##解压缩文件
tar xvf mysql-cluster-gpl-7.2.15.tar.gz
##切换目录
cd mysql-cluster-gpl-7.2.15
mkdir -p /usr/local/mysql
##编译
/usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql-cluster.sock \
-DMYSQL_DATADIR=/data/ndbdata \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_EMBEDDED_SERVER=0 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_NDBCLUSTER_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_SSL=yes\
-DWITH_NDB_JAVA=OFF
-----------------------------------------------
##error:
CMake Error at cmake/bison.cmake:60 (FILE):
  file does not recognize sub-command RENAME
Call Stack (most recent call first):
  sql/CMakeLists.txt:184 (RUN_BISON)
---官方说是个BUG,下载最新版本2.8的CMAKE-----
下载wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
删除旧版本:yum remove cmake
解压:tar xvf cmake-2.8.12.2.tar.gz 
   cd cmake-2.8.12.2
编译:./configure
      make && make install
-----------------------------------------------
清除缓存:rm CMakeCache.txt 
/usr/local/bin/cmake && make && make install
##移动文件到指定目录 
mv mysql-cluster-gpl-7.2.15 /usr/local/mysql
##改变文件级文件所有者:
chown mysql.mysql -R /usr/local/mysql 
mkdir /data/ndbdata
chown mysql.mysql /data/ndbdata/ -R
(2)初始化数据库
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --datadir=/data/ndbdata
##复制ndb节点管理命令到本地,方便使用
cd /usr/local/mysql/bin
[root@xiao57 bin]# cp ndb_mgm* /usr/local/bin
(4)创建mysql集群配置文件
[root@xiao57 bin]# mkdir /etc/ndbdata
[root@xiao57 bin]# vim /etc/ndbata/config.ini
========================================
[NDBD DEFAULT]
#定义在Cluster环境中相同数据的份数,最大为4
NoOfReplicas=2
#分配的数据内存大小,根据本机服务器内存适量来分配,否则会连接失败
DataMemory=256M
#设定用于存放索引(非主键)数据的内存段大小
IndexMemory=64M

[NDB_MGMD]
nodeid=1
hostname=10.10.54.57
datadir=/data/ndb

[NDBD]
nodeid=2
hostname=10.10.54.56accepting
datadir=/data/ndb
backupdatadir=/data/backup

[NDBD]
nodeid=3
hostname=10.10.54.58
datadir=/data/ndb
backupdatadir=/data/backup

[NDBD]
nodeid=4
hostname=10.10.54.67
datadir=/data/ndb

[NDBD]
nodeid=5
hostname=10.10.54.155
datadir=/data/ndb

[MYSQLD]
nodeid=10
hostname=10.10.54.56

[MYSQLD]
nodeid=11
hostname=10.10.54.58
[MYSQLD]
nodeid=12
hostname=10.10.54.67

[MYSQLD]
nodeid=13
hostname=10.10.54.155

[MYSQLD]
========================================
##改变文件所有者
chown mysql.mysql  /etc/ndbdata/config.ini
4.配置两台数据节点和SQL节点:配置相同
(1)安装mysql-cluster
##解压缩文件
tar xvf mysql-cluster-gpl-7.2.15.tar.gz
##移动文件到指定目录 
mv mysql-cluster-gpl-7.2.15 /usr/local/mysql
安装新版CMAKE:./bootstrap &&gmake && make install
##编译:/usr/local/bin/cmake....... &&make && make install
##改变文件级文件所有者:
chown mysql.mysql -R /usr/local/mysql 
mkdir /data/ndbdata
chown mysql.mysql /data/ndbdata/ -R
(2)初始化数据库
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --datadir=/data/ndbdata
(3)修改mysql配置文件
vim /etc/my.cnf
===============================
[mysql_cluster]
ndb-connectstring=10.10.54.57
[mysqld]
datadir         = /data/ndb
#运行NDB存储引擎
ndbcluster
#mysql cluster 管理节点IP
ndb-connectstring=10.10.54.57
=============================
##修改启动文件
vim /etc/init.d/mysqld
====================
datadir=/data/ndb
====================
##重启
/etc/init.d/mysqld restart
5.测试(必须关闭每台机器上的iptables&&selinux)
(1)启动管理节点
[root@xiao57 ~]# cd /usr/local/bin/
[root@xiao57 bin]# ndb_mgmd -f /etc/ndbdata/config.ini --initial
MySQL Cluster Management Server mysql-5.5.35 ndb-7.2.15
2014-02-27 14:18:00 [MgmtSrvr] INFO     -- The default config directory '/usr/local/mysql/mysql-cluster' does not exist. Trying to create it...
2014-02-27 14:18:00 [MgmtSrvr] INFO     -- Sucessfully created config director
#默认连接端口1186,启动成功
[root@xiao57 bin]# netstat -ntlup|grep ndb
tcp        0      0 0.0.0.0:1186                0.0.0.0:*                   LISTEN      2940/ndb_mgmd       
[root@xiao57 bin]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
(2)启动两台数据节点和SQL节点
数据节点: /usr/local/mysql/bin/ndbd --initial --ndb-connectstring=10.10.54.57
2014-02-26 11:56:31 [ndbd] INFO     -- Angel connected to '10.10.54.57:1186'
2014-02-26 11:56:31 [ndbd] INFO     -- Angel allocated nodeid: 2
SQL节点:/etc/init.d/mysqld start
(3)查看集群状态
#显示管理节点和数据节点则配置成功
ndb_mgm -e show
##错误:数据节点可以正常连接,但SQL节点连不上
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]	2 node(s)
id=2	@10.10.54.56  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)
id=3	@10.10.54.58  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)

[ndb_mgmd(MGM)]	1 node(s)
id=1	@10.10.54.57  (mysql-5.5.35 ndb-7.2.15)

[mysqld(API)]	4 node(s)
id=10 (not connected, accepting connect from 10.10.54.56)
id=11 (not connected, accepting connect from 10.10.54.58)
id=12 (not connected, accepting connect from any host)
id=13 (not connected, accepting connect from any host)
解决方法:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 
源代码在编译的过程中,生成指定的文件,无需修改,故建议做此操作,4(3)中的修改启动文件不推荐。
(4)在数据节点上创建一个数据库验证是否同步
mysql -u root -p
Mysql>create database tt;
Mysql>use tt;
#指定数据库表的引擎为NDB,否则同步失败
Mysql>create table abc (id int) engine=ndbcluster;
Mysql>insert into abc values(1),(2);
Mysql>select * from abc;
#此时看两个数据是否数据一致,如果一致说明集群已经成功!
##如果关掉其中一台10.10.54.58数据节点,在另一台10.10.54.56新建表,开启58,会同步到新建的表。


你可能感兴趣的:(mysql,cluster,源代码,数据节点,SQL节点)