MySQL-Cluster7.2.7安装和配置

下面介绍一下MySQL-Cluster7.2.7安装和配置,按照此步骤本人已配置成功,如有疑问请联系我.

环境:

操作系统都是 CentOS5.6 64位。

管理节点:10.10.10.28

数据节点:10.10.10.27(也是sql节点)

SQL节点:10.10.10.26(也是数据节点)


一 下载MySql Cluster7.2.7

http://www.mysql.com/downloads/cluster/#downloads

此处选择的是generic linux 64位二进制tar包。

注:如果已经存在MySql,需要先删除。

方法1:

如果能联网 yum remove mysql

否则手动删除mysql

方法2:

先看看都安装了什么包:

# rpm -qa|grep MySQL

然后把这些包都卸载掉

rpm -e MySQL-server-5.5.21-1.linux2.6

rpm -e MySQL-client-5.5.20-1.linux2.6

二 下载后解压

先设置10.10.10.28,把MySql Cluster下载到/downfiles下

#cd /downfiles

#tar –zxvf mysql-cluster-gpl-7.2.7-linux2.6-x86_64.tar.gz//解压


三 把解压后的文件拷贝到/usr/local下,名字为mysql

#cp -r /downfiles/mysql-cluster-gpl-7.2.7-linux2.6-x86_64/* /usr/local/mysql

#cd /usr/local/mysql

添加用户名和组:

groupadd mysql

useradd mysql -g mysql


# chown –R root . //把mysql的目录设置成所有者为root

#chown –R mysql data/ //把data目录设置所有者为mysql

#chgrp –R mysql . //改成所属组为mysql


退到安装文件的根目录:

cd /usr/local/mysql

安装:

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

注意:红色字体若无,启动失败。


四 设置mysql服务为开机自启动

#cp /usr/local/mysql/bin/mysqld /etc/rc.d/init.d/
#chmod +x /etc/rc.d/init.d/mysqld //给这个文件赋予可修改权限
#chkconfig --add mysqld // chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息,chkconfig --add name:增加一项新的服务
此时还不能开机自启,还需要设置环境变量
#vi /etc/profile
最后面加上两句
PATH=$PATH:/usr/local/mysql/bin
export PATH
以上操作在另外两台服务器上做同样操作。


五:配置

1、配置管理节点
拷贝/usr/local/mysql/bin/ndb_mgm,ndb_mgmd两个文件到/usr/local/bin
#cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin
#mkdir /var/lib/mysql-cluster
#vim /var/lib/mysql-cluster/config.ini
输入下面内容:
[ndbd default]
NoOfReplicas=1 #每个数据节点的镜像数量
DataMemory=200M  #每个数据节点中给数据分配的内存
IndexMemory=20M #每个数据节点中给索引分配的内存
[ndb_mgmd]  #配置管理节点
NodeId=1
hostname=10.10.10.28
datadir=/var/lib/mysql-cluster/ #管理节点数据(日志)目录
[ndbd]  #数据节点配置
NodeId=2
hostname=10.10.10.27
datadir=/usr/local/mysql/data/  #数据节点目录
[ndbd]
NodeId=3
hostname=10.10.10.26
datadir=/usr/local/mysql/data/
[mysqld]
hostname=10.10.10.27
[mysqld]
hostname=10.10.10.26
[mysqld] #一定要留一个空的,以备扩展使用,否则会出现Failed to allocate nodeid No free node id found for ndbd(NDB)错误

注:配置时, []右边的注释不要加上,否则系统不认。
[NDBD DEFAULT]:表示每个数据节点的默认配置在每个节点的[NDBD]中不用再写这些选项,只能有一个。
[NDB_MGMD]:表示管理节点的配置,只有一个。
[NDBD]:表示每个数据节点的配置,可以有多个。
[MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址。
2、配置数据节点和SQL节点
mysql服务启动时会默认加载/etc/my.cnf作为其配置文件,修改10.10.10.27上的my.cnf
[mysqld]
ndbcluster #运行NDB存储引擎
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
[mysql_cluster]
ndb-connectstring=10.10.10.28 #声明管理节点
拷贝一份到另一台10.10.10.26

六 启动
节点的启动顺序为管理节点->数据节点->SQL节点
1、10.28上启动管理节点
#cd /usr/local/mysql/bin
# ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini // ndb_mgmd是mysqlcluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中
2、启动数据节点
安装后第一次启动数据节点时要加上--initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时
#/usr/local/mysql/bin/ndbd –initial
2012-03-28 02:01:38 [ndbd] INFO -- Angel connected to '10.10.10.28:1186'
2012-03-28 02:01:38 [ndbd] INFO -- Angel allocated nodeid: 36
出现这种信息表示启动成功.
3、启动SQL节点

启动之前:mysql/data/目录下的 ib_logfile0,ib_logfile1,ibdata1全部删除,否则启动失败
#mysqld_safe --ndb_nodeid=5 --user=mysql &

同样方法,启动另外一个机器,注意nodeid的编号。

#mysqld_safe --ndb_nodeid=6 --user=mysql &
4、客户端查看
# /usr/local/mysql/bin/ndb_mgm
ndb_mgm> show
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 10.10.10.28:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @10.10.10.27  (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master)
id=3    @10.10.10.26  (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0)


[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.10.10.28  (mysql-5.5.25 ndb-7.2.7)


[mysqld(API)]   3 node(s)
id=4 (not connected, accepting connect from 10.10.10.27)
id=5    @10.10.10.26  (mysql-5.5.25 ndb-7.2.7)
id=6    @10.10.10.27  (mysql-5.5.25 ndb-7.2.7)

如果看不到上述信息,可能是防火墙问题,你可以选择把CentOS的防火墙关掉,命令为:/etc/init.d/iptables stop
管理节点关闭,在ndb_mgm>提示符下输入shutdown,再输入exit即可退出。
7 测试。
1、从SQL节点A登录,创建数据库和表,进行简单测试。
mysql> create database zxztest ;
mysql> use zxztest;
Database changed
mysql> create table test1(id int,name varchar(10)) engine=ndb ;
mysql> insert into test1 values(1,'zhaoxuezhi');
mysql> select * from test1 ;
+------+---------+
| id   | name    |
+------+---------+
|    1 | zhaoxuezhi | 
+------+---------+
登陆B节点,查看效果,库,表和数据已经同步。
从B节点插入一条数据,同样登陆A,也能看到数据已经同步。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值