管理節點:192.168.10.243
Data節點1:192.168.10.244
Data節點2:192.168.10.245
SQL節點1:192.168.30.244
SQL節點2:192.168.30.245
下載cmake
https://cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
下載mysql cluster
到網頁http://dev.mysql.com/downloads/cluster下下載mysql-cluster-gpl-7.4.8.tar.gz
安裝cmake
#tar zxvf mysql-cluster-gpl-7.4.8.tar.gz -C /usr/local/cmake-2.8.12.2
#cd /usr/local/cmake-2.8.12.2
#./configure
#make && make install
安裝MySQL cluster
解壓即按照步驟與安裝MySQL Server幾乎完全相同,操作步驟如下:
#tar xvfz mysql-cluster-gpl-7.3.3.tar.gz
#cd mysql-cluster-gpl-7.3.3
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_NDB_JAVA=OFF \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_NDBCLUSTER_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT='MysqlCluster' \
-DWITH_READLINE=ON \
-DSYSCONFDIR=/data01 \
-DMYSQL_UNIX_ADDR=/data01/mysql.sock
#make&&make install
創建數據庫
#chown mysql:mysql /usr/local/mysql -R
#chown mysql:mysql /data01 -R
#cd /usr/local/mysql/scripts/
#chmod +x mysql_install_db
#./mysql_install_db --basedir=/usr/local/mysql --datadir=/data01
管理節點添加控制文件
$vim /data/config.ini
[root@localhost scripts]# cat /data01/config.ini
[ndbd default]
NoOfReplicas=2
DataMemory=200M
IndexMemory=30M
[ndb_mgmd]
nodeid=1
hostname=192.168.10.243
[ndbd]
nodeid=2
hostname=192.168.10.244
datadir=/data01
[ndbd]
nodeid=3
hostname=192.168.10.245
datadir=/data01
[mysqld]
nodeid=4
hostname=192.168.10.244
[mysqld]
nodeid=5
hostname=192.168.10.245
244、245點:
#vim /data01/my.cnf
[root@localhost data01]# cat /data01/my.cnf
[mysqld]
datadir=/data01
socket=/data01/mysql.sock
user=mysql
symbolic-links=0
ndbcluster
ndb-connectstring=192.168.10.243
[MYSQL_CLUSTER]
ndb-connectstring=192.168.10.243
[mysqld_safe]
log-error=/data01/mysqld.log
pid-file=/data01/mysqld.pid
配置工作至此全部完成。然後可以啓動MySQL Cluster了,啓動Cluster中各節點的順序正是前面配置節點的順序:
#ndb_mgmd -f /data/mysql-cluster/config.ini
執行ndb_mgm管理命令:
ndb_mgm>show
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]2 node(s)
id=2 (not connected, accepting connect from 192.168.10.244)
id=3 (not connected, accepting connect from 192.168.10.245)
[ndb_mgmd(MGM)]1 node(s)
id=1@192.168.10.243 (mysql-5.6.27 ndb-7.4.8)
[mysqld(API)]2 node(s)
id=4 (not connected, accepting connect from 192.168.10.244)
id=5 (not connected, accepting connect from 192.168.10.245)
切換到244、245節點服務器,加--initial初始化Data節點並啓動Data節點:
#ndbd --defaults-file=/data01/my.cnf --initial
注:下次啓動只用執行ndbd --defaults-file=/data01/my.cnf
244,245節點啓動:
#mysqld_safe --defaults-file=/data/my.cnf &
然後再回過頭來查看節點
ndb_mgm>show
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]2 node(s)
id=2@192.168.10.244 (mysql-5.6.27 ndb-7.4.8, Nodegroup: 0, *)
id=3@192.168.10.245 (mysql-5.6.27 ndb-7.4.8, Nodegroup: 0)
[ndb_mgmd(MGM)]1 node(s)
id=1@192.168.10.243 (mysql-5.6.27 ndb-7.4.8)
[mysqld(API)]2 node(s)
id=4@192.168.10.244 (mysql-5.6.27 ndb-7.4.8)
id=5@192.168.10.245 (mysql-5.6.27 ndb-7.4.8)
測試:
在244節點創建數據庫、表,並向表中插入一條數據。
mysql> create database dd;
Query OK, 1 row affected (0.13 sec)
mysql> use dd
Database changed
mysql> create table abc(id int) engine=ndbcluster;
Query OK, 0 rows affected (0.32 sec)
mysql> use dd
Database changed
mysql> show tables;
+--------------+
| Tables_in_dd |
+--------------+
| abc |
+--------------+
1 row in set (0.00 sec)
mysql> insert into abc values(1);
Query OK, 1 row affected (0.07 sec)
mysql> commit;
在245中查詢在244中創建的表是否存在。
Query OK, 0 rows affected (0.00 sec)
mysql> select * from abc;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.04 sec)