本文会先对MySQL集群稍作一点介绍,然后会提供一个安装过程。
介绍:
MySQL集群是一种在无共享架构系统里应用内存数据库集群的技术。这种无共享的架构可以使得系统使用非常便宜的并且是最小配置的硬件。
MySQL集群是一种分布式设计,目标是要达到没有任何单点故障点。因此,任何组成部分都应该拥有自己的内存和磁盘。任何共享存储方案如网络共享,网络文件系统和SAN设备是不推荐或不支持的。通过这种冗余设计,MySQL声称数据的可用度可以达到99。999%。
实际上,MySQL集群是把一个叫做NDB的内存集群存储引擎集成与标准的MySQL服务器集成。它包含一组计算机,每个都跑一个或者多个进程,这可能包括一个MySQL服务器,一个数据节点,一个管理服务器和一个专有的一个数据访问程序。它们之间的关系如下图所示:
安装
准备:
机器: 全部安装Red Hat Linux AS 5且关闭防火墙
软件: mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz
IP | Description |
192.168.99.80 | Management Node |
192.168.99.88 | SQL Node |
192.168.99.89 | Data Node |
192.168.99.90 | Data Node |
四台机器分别分配如下IP及用途:
安装节点,四台机器,需要重复四次:
[root@candyshop~]#groupaddmysql [root@candyshop~]#useradd–gmysqlmysql [root@candyshop~]#tarzxvfmysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz [root@candyshop~]#chownmysql:mysqlmysql-cluster-gpl-6.3.20-linux-i686-glibc23 [root@candyshop~]#mvmysql-cluster-gpl-6.3.20-linux-i686-glibc23/usr/local/mysql
上述命令先创建mysql组和mysql用户,并且把mysql分配到mysql组,然后将安装文件解压,把它放置到/usr/local/mysql目录。
配置
配置管理节点[192.168.99.80]:
创建以下文件/usr/local/mysql/cluster-conf/config.ini,并且放置如下内容:
#Optionsaffectingndbdprocessesonalldatanodes: [ndbddefault] NoOfReplicas=2#Numberofreplicas DataMemory=80M#Howmuchmemorytoallocatefordatastorage IndexMemory=18M#Howmuchmemorytoallocateforindexstorage #ForDataMemoryandIndexMemory,wehaveusedthe #defaultvalues.Sincethe"world"databasetakesup #onlyabout500KB,thisshouldbemorethanenoughfor #thisexampleClustersetup. #Managementprocessoptions: [ndb_mgmd] Id=1Hostname=192.168.99.80#HostnameorIPaddressofmanagementnode Datadir=/usr/local/mysql/logs#Directoryformanagementnodelogfiles #Optionsfordatanode"A": [ndbd] Id=2Hostname=192.168.99.89#HostnameorIPaddress Datadir=/usr/local/mysql/ndbdata#Directoryforthisdatanode'sdatafiles #Optionsfordatanode"B": [ndbd] Id=3Hostname=192.168.99.90#HostnameorIPaddress Datadir=/usr/local/mysql/ndbdata#Directoryforthisdatanode'sdatafiles #SQLnodeoptions: [mysqld] Id=4Hostname=192.168.99.88#HostnameorIPaddress #(additionalmysqldconnectionscanbe #specifiedforthisnodeforvarious #purposessuchasrunningndb_restore)
在这个文件里,我们分别给四个节点分配了ID,这有利于更好的管理和区分各个节点。当然,要是不指定,MySQL也会动态分配一个。上述几个Datadir如果还不存在的需要手动创建。用mkdir –p命令即可。
配置数据节点[192.168.99.89, 192.168.99.90]:
创建/etc/my.cnf文件,内容如下
#Optionsformysqldprocess: [mysqld] Datadir=/usr/local/mysql/ndbdata ndbcluster#runNDBstorageengine ndb-connectstring=192.168.99.80#locationofmanagementserver #Optionsforndbdprocess: [mysql_cluster] ndb-connectstring=192.168.99.80#locationofmanagementserver
配置SQL节点[192.168.99.88]
创建/etc/my.cnf文件,内容如下
#Optionsformysqldprocess: [mysqld] ndbcluster#runNDBstorageengine ndb-connectstring=192.168.99.80#locationofmanagementserver #Optionsforndbdprocess: [mysql_cluster] ndb-connectstring=192.168.99.80#locationofmanagementserver
[root@server88mysql]#./scripts/mysql_install_db--user=mysql--basedir=/usr/local/mysql/--ldata=/usr/local/mysql/data/ InstallingMySQLsystemtables... OK Fillinghelptables... OK
到这里,所有配置已经完成了。
启动
启动管节点[192.168.99.80]:
[root@candyshopmysql]#./bin/ndb_mgmd-fcluster-conf/config.ini [root@candyshopmysql]#./bin/ndb_mgm --NDBCluster--ManagementClient-- ndb_mgm>show ConnectedtoManagementServerat:192.168.99.80:1186 ClusterConfiguration --------------------- [ndbd(NDB)]2node(s) id=2(notconnected,acceptingconnectfrom192.168.99.89) id=3(notconnected,acceptingconnectfrom192.168.99.90) [ndb_mgmd(MGM)]1node(s) id=1@192.168.99.80(mysql-5.1.30ndb-6.3.20) [mysqld(API)]1node(s) id=4(notconnected,acceptingconnectfrom192.168.99.88)
我们可以看到集群的状态都还没有启动,都是not connected状态。
[root@candyshopmysql]#./bin/ndb_mgmd-fcluster-conf/config.ini [root@candyshopmysql]#./bin/ndb_mgm --NDBCluster--ManagementClient-- ndb_mgm>show ConnectedtoManagementServerat:192.168.99.80:1186 ClusterConfiguration --------------------- [ndbd(NDB)]2node(s) id=2(notconnected,acceptingconnectfrom192.168.99.89) id=3(notconnected,acceptingconnectfrom192.168.99.90) [ndb_mgmd(MGM)]1node(s) id=1@192.168.99.80(mysql-5.1.30ndb-6.3.20) [mysqld(API)]1node(s) id=4(notconnected,acceptingconnectfrom192.168.99.88)
启动数据节点[192.168.99.89, 192.168.99.90]:
[root@server89~]#cd/usr/local/mysql [root@server89mysql]#./bin/ndbd
启动SQL节点[192.168.99.88]:
[root@server88mysql]#./bin/mysqld_safe&
至此,所有节点已经启动完成,让我们来查看系统状态:
ndb_mgm>show ConnectedtoManagementServerat:localhost:1186 ClusterConfiguration --------------------- [ndbd(NDB)]2node(s) id=2@192.168.99.89(mysql-5.1.30ndb-6.3.20,Nodegroup:0,Master) id=3@192.168.99.90(mysql-5.1.30ndb-6.3.20,Nodegroup:0) [ndb_mgmd(MGM)]1node(s) id=1@192.168.99.80(mysql-5.1.30ndb-6.3.20) [mysqld(API)]1node(s) id=4@192.168.99.88(mysql-5.1.30ndb-6.3.20)
至此,安装已经结束
原文链接:http://ginge.javaeye.com/blog/320205
【编辑推荐】
- MySQL数据库集群进行正确配置步骤MySQL 集群在Server1与Server2上如何安装MySQLMySQL集群配置MySQL集群自动安装脚本MySQL触发器如何正确使用