要配置一個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叢集配置