|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用它开发程序也是非常简单的。”这篇文章旨在先容怎样安拆卸置基于2台服务器的MySQL集群。而且完成恣意一台服务器呈现成绩或宕机时MySQL仍然可以持续运转。
注重!固然这是基于2台服务器的MySQL集群,但也必需有分外的第三台服务器作为办理节点,但这台服务器能够在集群启动完成后封闭。同时必要注重的是其实不保举在集群启动完成后封闭作为办理节点的服务器。只管实际上能够创建基于只要2台服务器的MySQL集群,可是如许的架构,一旦一台服务器宕机以后集群就没法持续一般事情了,如许也就得到了集群的意义了。出于这个缘故原由,就必要有第三台服务器作为办理节点运转。别的,大概良多伴侣都没有3台服务器的实践情况,能够思索在VMWare或其他假造机中举行实行。
上面假定这3台服务的情形:
Server1:mysql1.vmtest.net192.168.0.1
Server2:mysql2.vmtest.net192.168.0.2
Server3:mysql3.vmtest.net192.168.0.3
Servers1和Server2作为实践设置MySQL集群的服务器。关于作为办理节点的Server3则请求较低,只需对Server3的体系举行很小的调剂而且无需安装MySQL,Server3可使用一台设置较低的盘算机而且能够在Server3同时运转其他服务。2、在Server1和Server2上安装MySQL
=================================从http://www.mysql.com高低载mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz注重:必需是max版本的MySQL,Standard版本不撑持集群部署!以下步骤必要在Server1和Server2上各做一次
#mvmysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/usr/local/
#cd/usr/local/
#groupaddmysql
#useradd-gmysqlmysql
#tar-zxvfmysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
#rm-fmysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
#mvmysql-max-4.1.9-pc-linux-gnu-i686mysql
#cdmysql
#scripts/mysql_install_db--user=mysql
#chown-Rroot.
#chown-Rmysqldata
#chgrp-Rmysql.
#cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld
#chmod+x/etc/rc.d/init.d/mysqld
#chkconfig--addmysqld此时不要启动MySQL!
安装并设置办理节点服务器(Server3)
=====================================作为办理节点服务器,Server3必要ndb_mgm和ndb_mgmd两个文件:从http://www.mysql.com高低载mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
#mkdir/usr/src/mysql-mgm
#cd/usr/src/mysql-mgm
#tar-zxvfmysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
#rmmysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
#cdmysql-max-4.1.9-pc-linux-gnu-i686
#mvbin/ndb_mgm.
#mvbin/ndb_mgmd.
#chmod+xndb_mg*
#mvndb_mg*/usr/bin/
#cd
#rm-rf/usr/src/mysql-mgm如今入手下手为这台办理节点服务器创建设置文件:
#mkdir/var/lib/mysql-cluster
#cd/var/lib/mysql-cluster
#viconfig.ini在config.ini中增加以下内容:
[NDBDDEFAULT]
NoOfReplicas=2
[MYSQLDDEFAULT]
[NDB_MGMDDEFAULT]
[TCPDEFAULT]
#ManagmentServer
[NDB_MGMD]
HostName=192.168.0.3#办理节点服务器Server3的IP地点
#StorageEngines
[NDBD]
HostName=192.168.0.1#MySQL集群Server1的IP地点
DataDir=/var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2#MySQL集群Server2的IP地点
DataDir=/var/lib/mysql-cluster
#以下2个[MYSQLD]能够填写Server1和Server2的主机名。
#但为了可以更快的改换集群中的服务器,保举留空,不然改换服务器后必需对这个设置举行变动。
[MYSQLD]
[MYSQLD]保留加入后,启动办理节点服务器Server3:
#ndb_mgmd启动办理节点后应当注重,这只是办理节点服务,并非办理终端。因此你看不就任何干于启动后的输入信息。4、设置集群服务器并启动MySQL
=============================在Server1和Server2中都必要举行以下修改:
#vi/etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3#Server3的IP地点
[mysql_cluster]
ndb-connectstring=192.168.0.3#Server3的IP地点保留加入后,创建数据目次并启动MySQL:
#mkdir/var/lib/mysql-cluster
#cd/var/lib/mysql-cluster
#/usr/local/mysql/bin/ndbd--initial
#/etc/rc.d/init.d/mysqldstart能够把/usr/local/mysql/bin/ndbd加到/etc/rc.local中完成开机启动。注重:只要在第一次启动ndbd时大概对Server3的config.ini举行修改后才必要利用--initial参数!5、反省事情形态
================回到办理节点服务器Server3上,并启动办理终端:
#/usr/bin/ndb_mgm键进show命令检察以后事情形态:(上面是一个形态输入示例)
[root@mysql3root]#/usr/bin/ndb_mgm
--NDBCluster--ManagementClient--
ndb_mgm>show
ConnectedtoManagementServerat:localhost:1186
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2@192.168.0.1(Version:4.1.9,Nodegroup:0,Master)
id=3@192.168.0.2(Version:4.1.9,Nodegroup:0)
[ndb_mgmd(MGM)]1node(s)
id=1@192.168.0.3(Version:4.1.9)
[mysqld(API)]2node(s)
id=4(Version:4.1.9)
id=5(Version:4.1.9)
ndb_mgm>
假如下面没有成绩,如今入手下手测试MySQL:注重,这篇文档关于MySQL并没有设置root暗码,保举你本人设置Server1和Server2的MySQLroot暗码。在Server1中:
#/usr/local/mysql/bin/mysql-uroot-p
>usetest;
>CREATETABLEctest(iINT)ENGINE=NDBCLUSTER;
>INSERTINTOctest()VALUES(1);
>SELECT*FROMctest;应当能够看到1rowreturned信息(前往数值1)。假如上述一般,则换到Server2上反复下面的测试,察看效果。假如乐成,则在Server2中实行INSERT再换回到Server1察看是不是事情一般。假如都没有成绩,那末祝贺乐成!6、损坏性测试
==============将Server1或Server2的网线拔失落,察看别的一台集群服务器事情是不是一般(可使用SELECT查询测试)。测试终了后,从头拔出网线便可。假如你打仗不到物理服务器,也就是说不克不及拔失落网线,那也能够如许测试:在Server1或Server2上:
#psaux|grepndbd将会看到一切ndbd历程信息:
root55780.00.362201964?S03:140:00ndbd
root55790.020.4492072102828?R03:140:04ndbd
root235320.00.13680684pts/1S07:590:00grepndbd然后杀失落一个ndbd历程以到达损坏MySQL集群服务器的目标:
#kill-955785579以后在另外一台集群服务器上利用SELECT查询测试。而且在办理节点服务器的办理终端中实行show命令会看到被损坏的那台服务器的形态。测试完成后,只必要从头启动被损坏服务器的ndbd历程便可:
#ndbd注重!后面说过了,此时是不必加--inital参数的!至此,MySQL集群就设置完成了!
MySQL采用双重授权(DualLicensed),它们是GPL和MySQLAB制定的商业许可协议。 |
|