mysql集群安装

mysql cluster (mysql 集群)安装配置方案

一、准备



1、准备服务器


计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL CLuster体系,将一个SQL节点一个数据节点一个SQL节点放在了一台服务器上(192.168.1.252),将另一个SQL节点和一个数据节点放在了另外一台服务器上(192.168.1.52)。


节点配置说明
节点 对应的IP和端口
管理节点(1个) 192.168.1.252
SQL节点 (2个) 192.168.1.252:3331
192.168.1.52:3331
数据节点 (2个) 192.168.1.252
192.168.1.52
2、准备软件包


现在的mysql提供了一个专门作集群的安装包,这样就不用一个个的下载所需要的工具了。我在网上找到了最新的而且下载比较快的资源,第一步先是下载,有200M左右。


cd /var/tmp


wget http://mysql.ntu.edu.tw/Downloads/MySQL-Cluster-7.1/  


mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz

二、安装



1、数据节点和SQL节点



第一步 添加mysql用户和组,这是必需的。


groupadd mysql


useradd -g mysql mysql
第二步 开始安装,下载的版本是免编译的,复制过来就可以用了。


cd /var/tmp


tar -C /usr/local-zxvf mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz


cd /usr/local


mv mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz mysql
第三步 在mysql修改目录权限,这也是必需的,不然第四步会报错的。


cd mysql


chown -R root .


chown -R mysql data


chgrp -R mysql .
第四步 安装初始的数据库表


scripts/mysql_install_db --user=mysql
第五步 设置mysql服务为开机自启动


cp support-files/mysql.server /etc/rc.d/init.d/mysqld


chmod +x /etc/rc.d/init.d/mysqld


chkconfig --add mysqld
第六步 启动mysql服务,如果报错请参考


service mysqld start
这六步,在252和52服务器上都执行一次,数据节点和SQL节点就算安装好了。


2、管理节点



管理节点的安装更简单,只要在252服务器上复制些文件出来就行了,虽然只有一步,便这一步在目前环境下(管理节点和SQL节点在同一台服务器上)也不是必需的。


cd mysql


cp bin/ndb_mgm*/usr/local/bin


cd /usr/local/bin


chmod +x ndb_mgm*
管理节点只要ndb_mgm和ndb_mgmd两个文件和一个配置文件即可,因此把这三个文件复制到那里,那里就是管理节点了。ndb_mgmd是mysql cluster管理服务器,ndb_mgm是客户端管理工具,等一下会用到它们的。到目前为止两个SQL节点两个数据节点和一个管理节点都安装完成了,但是还不能工作,得进行配置,把这几个节点联系在一起协同工作。


三、配置



1、数据节点和SQL节点



mysql服务启动时会默认加载/etc/my.cnf作为其配置文件,要将一个mysql服务器配置成一个数据节点和SQL节点也非常的简单,这是配置前的my.cnf的内容:


[client]


port    =3306


socket  =/tmp/mysql.sock


[mysqld]


basedir         =/usr/local/mysql/


datadir         =/usr/local/mysql/data


user            = mysql


log-error       =/var/lib/mysql/mysqld.err
 


只要在内容结尾加上4行就将这个mysql服务器变成了一个数据节点和SQL节点。


ndbcluster   #运行NDB存储引擎


#指定管理节点  以上两行声明其为SQL节点


ndb-connectstring=192.168.1.252   


[mysql_cluster]


#指定管理节点  以上两行声明其为数据节点


ndb-connectstring=192.168.1.252   
注意两台服务器都得这样配置。


2、管理节点



管理节点的配置复杂一点,在管理服务器252的/var/lib/mysql-cluster/目录中创建config.ini文件。


cd /var/lib


mkdir mysql-cluster


cd mysql-cluster


vim config.ini
在config.ini文件中添加以下内容:


[NDBD DEFAULT]


NoOfReplicas=1    #每个数据节点的镜像数量


DataMemory=500M   #每个数据节点中给数据分配的内存


IndexMemory=300M  #每个数据节点中给索引分配的内存


[TCP DEFAULT]


portnumber=2202   #数据节点的默认连接端口


[NDB_MGMD]        #配置管理节点


hostname=192.168.1.252


datadir=/var/lib/mysql-cluster/  #管理节点数据(日志)目录


[NDBD]            #数据节点配置


hostname=192.168.1.252


datadir=/usr/local/mysql/data/   #数据节点目录


[NDBD]


hostname=192.168.1.52


datadir=/usr/local/mysql/data/


[MYSQLD]   #SQL节点目录


hostname=192.168.1.252


[MYSQLD]


hostname=192.168.1.52
[NDBD DEFAULT]:表示每个数据节点的默认配置在每个节点的[NDBD]中不用再写这些选项,只能有一个。
[NDB_MGMD]:表示管理节点的配置,只有一个。
[NDBD]:表示每个数据节点的配置,可以有多个。
[MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址,也可以什么都不写,只保留一个空节点,表示任意一个IP地址都可以进行访问,此节点的个数表明了可以用来连接数据节点的SQL节点总数。


四、启动



1、管理节点



mysql cluster 需要各个节点都 进行启动后才可以工作,节点的启动顺序为管理节点->数据节点->SQL节点。首先启动管理节点


cd /usr/local/bin


./ndb_mgmd -f /var/lib/mysql-cluster/config.ini
命令行中的ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。


./ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
启动时可能会报个WARNING,如WARNING  -- at line 7: [TCP] portnumber is deprecated,这个不用管。可以正常工作的。


2、数据节点



安装后第一次启动数据节点时要加上--initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时。


cd mysql/bin/ndbd --initial 
如果显示以下信息说明启动完成:


2010-12-31 12:48:03 [ndbd] INFO     -- Angel connected to '192.168.1.252:1186'
2010-12-31 12:48:03 [ndbd] INFO     -- Angel allocated nodeid: 3


3、SQL节点



service mysqld start

4、客户端管理



cd /usr/local/bin


./ndb_mgm
这时就进入到客户端,可以对mysql cluster进行各项操作,进入后会有ndb_mgm > 提示符出现,首先来查看各节点的连接情况,在ndb_mgm> 提示符下输入show:


ndb_mgm> show


ClusterConfiguration


---------------------


[ndbd(NDB)]     2 node(s)


id=2    @192.168.1.252  (mysql-5.1.51 ndb-7.1.9,Nodegroup:0,Master)


id=3    @192.168.1.52  (mysql-5.1.51 ndb-7.1.9,Nodegroup:1)


[ndb_mgmd(MGM)]1 node(s)


id=1    @192.168.1.252  (mysql-5.1.51 ndb-7.1.9)


[mysqld(API)]   2 node(s)


id=4    @192.168.1.252  (mysql-5.1.51 ndb-7.1.9)


id=5    @192.168.1.52  (mysql-5.1.51 ndb-7.1.9)
可以看到各个节点已经连接上了,至此,mysql cluster配置完成。


五、关闭



mysql cluster的关闭也很简单,只需在ndb_mgm> 提示符下输入 shutdown即可,这时会显示各节点的关闭信息,再输入exit即可退出ndb_mgm管理,回到shell中。虽然mysql cluster 关闭了,但是SQL节点的mysql服务并不会停止的。接下来就可以做各种试验了。
========

mysql-cluster集群-安装篇



本文主要介绍Mysql-Cluster的安装,首先先简单了解一下:(linux用户,本人 debian)


MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。


一、简介



Mysql-cluster分为:


1. 管理节点:管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等


2. 数据节点:用于保存 Cluster的数据


3. Sql节点:用来访问 Cluster数据的节点


二、安装



此安装为1个管理节点,2个数据节点,2个sql节点,安装在两台机器,一台机器:管理节点,数据节点,sql节点,另一台:数据节点,sql节点


 节点名称


 IP


 管理节点


 192.168.1.111


 数据节点1


 192.168.1.111


 数据节点2


 192.168.1.112


 Sql节点1


 192.168.1.111


 Sql节点2


 192.168.1.112



三、安装步骤



1. 为mysqld增加一个登陆用户组,两台服务器都需要


# groupadd mysql


# useradd –g mysqlmysql


 


2. 安装管理节点


# tar zxvf mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz


# mv mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64/*/opt/mysql –r


创建mysql-cluster目录,并配置config.ini


# mkdir/apps/mysql/mysql-cluster


# cd/apps/mysql/mysql-cluster


# vi config.ini


内容如下:


[ndbddefault]


NoOfReplicas=2 (代表sql节点的数量)


DataMemory=500M


indexMemory=300M


[tcpdefault]


SendBufferMemory=2M


ReceiveBufferMemory=2M


[ndb_mgmddefault]


PortNumber=1186


Datadir=/apps/mysql/mysql-cluster


[ndb_mgmd]


NodeId=1


HostName=192.168.1.111


[ndbd]


NodeId=2


HostName=192.168.1.111


DataDir=/apps/mysql/data


[ndbd]


NodeId=2


HostName=192.168.1.112


DataDir=/apps/mysql/data






[mysqld]


NodeId=3


Hostname=192.168.1.111


[mysqld]


NodeId=3


Hostname=192.168.1.112
 


3. 安装数据节点


Vi /etc/my.cnf


如下:


[mysqld]


datadir=/opt/mysql/ndbdata


port =3306


 


ndbcluster #数据节点(因为在一台机器所以合并)


ndb-connectstring=192.168.1.111


port =3307


[mysql_cluster]


ndb-connectstring = 192.168.1.111


 


4. 安装sql节点


Vi /etc/my.cnf


如下:


[mysqld]


datadir=/opt/mysql/ndbdata


port =3306


 


ndbcluster #数据节点(因为在一台机器所有合并)


ndb-connectstring=192.168.1.111


port =3307


[mysql_cluster]


ndb-connectstring = 192.168.1.111


 


next:(安装mysqld)


# cd /opt/mysql


# ./scripts/mysql_install_db –user=mysql (安装到了 /opt/mysql/ndbdata)


 


5. 开始启动cluster


开启顺序: 管理节点->数据节点->sql节点


 


管理节点启动


# cd /opt/mysql


# ./bin/ndb_mgmd –f /apps/mysql/mysql-cluster/config.ini--configdir=/apps/mysql/mysql-cluster/--ndb-nodeid=1


 


数据节点启动(两个节点都要启动,不然sql节点不能启动)


# cd /opt/mysql


# ./bin/ndbd –-initial –-ndb-connectstring=192.168.1.111:1186


 


Sql节点启动


# cd /opt/mysql/ndbdata


# ../bin/mysqld_safe –user=mysql &


 


6. 查看


# cd /opt/mysql/


# ./bin/ndb_mgm –e show


Connectedto Management Server at: 192.168.1.111:1186


ClusterConfiguration


---------------------


[ndbd(NDB)] 1 node(s)


id=2 @192.168.1.111 (mysql-5.6.21 ndb-7.3.7, Nodegroup: 0, *)


id=3 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7, Nodegroup: 0, *)


[ndb_mgmd(MGM)] 1 node(s)


id=1 @192.168.1.111 (mysql-5.6.21 ndb-7.3.7)


[mysqld(API)] 1 node(s)


id=4 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7)


id=5 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7)
说明已经成功


7. 问题


Q: sql节点无法启动“Tablesnot available after 30 seconds. Considerincreasing --ndb-wait-setup value”


A: 数据节点没有全部启动


Q: sql节点启动时: “Unable to lock./ibdata1, error: 11”


A: 已经启动了


Q: 登录sql时:mysql –u root-p


1045 access denied for user 'root'@'localhost' using password yes


A: 直接 mysql –u root (需要修改配置文件)
========

链接

http://blog.csdn.net/bigtree_3721/article/details/51335734

你可能感兴趣的:(转载,数据库)