要配置一个Cluster集群,至少得需要配置1个MGM(管理结点)+1个SQL结点+2 Data 结点MGM可以和SQL结点共用一台机器,数据结点单独占要配置一个cluster集群,至少得需要配置1个mgm(管理结点)+1个sql结点+2 data 结点mgm可以和sql结点共用一台机器,数据结点单独占一台服务器。
这样最少也需要3台服务器。
有时候这样会觉得很麻烦,如果是学习阶段,可考虑在单台服务器搭建一个mysql cluster。
下文就是教你如何在一台服务器上搭建cluster。
一,先确认cluster的包已经正确安装[root@cluster-one ~]# rpm -aq|grep -i mysql mysql-cluster-client-gpl-7.2.10-1.el6.x86_64 mysql-cluster-server-gpl-7.2.10-1.el6.x86_64 mysql-cluster-shared-compat-gpl-7.2.10-1.el6.x86_64 mysql-cluster-devel-gpl-7.2.10-1.el6.x86_64二,创建如下几个配置文件,下面启动时要用到[root@cluster-one mysqlData]# more config.ini[NDBD DEFAULT]NoOfReplicas=2[TCP DEFAULT]#portnumber=3388[NDB_MGMD]NodeId = 1 hostname=localhost datadir=/mysqlData/clustermgmd-data/[NDBD]NodeId = 2 hostname=localhost datadir=/mysqlData/clusterndb1-data/[NDBD]NodeId = 3 hostname=localhost datadir=/mysqlData/clusterndb2-data/[MYSQLD]NodeId = 4 hostname=localhost[MYSQLD]NodeId = 5 hostname=localhost[MYSQLD][root@cluster-one mysqlData]# more my1.cnf[mysqld]ndbcluster socket=/data/socket/n1.sock pid-file=/data/socket/n1.pid log-error = /data/log/n1_err.log port = 3501[mysql_cluster]ndb-connectstring=localhost[root@cluster-one mysqlData]# more my2.cnf[mysqld]ndbcluster socket=/data/socket/n2.sock pid-file=/data/socket/n2.pid log-error = /data/log/n2_err.log port = 3502[mysql_cluster]ndb-connectstring=localhost[root@cluster-one mysqlData]# more /etc/my.cnf[mysqld]ndbcluster socket=/var/lib/mysql/mysql.sock pid-file=/data/socket/mysqld.pid datadir=/mysqlData/clusterapi log-bin=mysql-bin log-bin-index=mysql-bin.index binlog-format=ROW server-id=1 port = 3401[mysql_cluster]ndb-connectstring=localhost[client]socket=/var/lib/mysql/mysql.sock三,分别启动所有结点 (需要注意的是,如果是第一次启动,请在 管理结点/数据结点 的启动参数后面加上 --initial)启动结点之前,请确保,上面配置文件指定的目录都存在。
不存在,,请自行先创建一个,或是你修改配置文件指定其它目录。目录有:/mysqlData/clustermgmd-data//mysqlData/clusterndb1-data//mysqlData/clusterndb2-data//mysqlData/clusterapi/data/socket/mysqld.pid/data/socket//data/log/管理结点[root@cluster-one ~]# ndb_mgmd -f /mysqlData/config.ini MySQL Cluster Management Server mysql-5.5.29 ndb-7.2.10数据结点1[root@cluster-one ~]# ndbd --defaults-file=/mysqlData/my1.cnf 2013-12-20 02:35:42 [ndbd] INFO -- Angel connected to 'localhost:1186'2013-12-20 02:35:42 [ndbd] INFO -- Angel allocated nodeid: 2数据结点2[root@cluster-one ~]# ndbd --defaults-file=/mysqlData/my2.cnf 2013-12-20 02:35:46 [ndbd] INFO -- Angel connected to 'localhost:1186'2013-12-20 02:35:46 [ndbd] INFO -- Angel allocated nodeid: 3查询结点,如果没有/etc/init.d/mysql这个文件,可以 把 “/usr/share/mysql/mysql.server” 拷贝到/etc/init.d目录下,并改名为mysql[root@cluster-one ~]# /etc/init.d/mysql start Starting MySQL
相关阅读:
搭建基于Corosync+DRBD的高可用MySQL集群Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群Heartbeat+MySQL+NFS 实现高可用(HA)的MySQL集群MySQL集群架构全自动化实现切换(M-M-S-S) SUSE Linux 下 MySQL集群配置
