一、環境
server1:192.85.1.5
server2:192.85.1.4
server3:192.85.1.9
二、集群方案
1.管理節點:server1
2.存儲節點:server2,server3
3.SQL節點:server2,server3
三、在這裡下載MySQL-cluster-gpl-7.1.9a-Linux-i686-glibc23.tar.gz,將該文件上傳到服務器上,比如/home/zichen/下
四、安裝,配置
shell> sudo groupadd MySQL
shell> sudo useradd -g mysql MySQL
shell> sudo cd /usr/local
shell> sudo tar -xvf MySQL-cluster-gpl-7.1.9a-Linux-i686-glibc23.tar.gz
shell> sudo ln -s mysql-cluster-gpl-7.1.9a-Linux-i686-glibc23.tar.gz MySQL #ln命令生成到該目錄的一個符號鏈接
shell> cd MySQL
shell> sudo scripts/mysql_install_db --user=mysql #mysql_install_db腳本,www.Linuxidc.com 用來初始化MySQL數據庫的 授權表,其中貯存了服務器訪問允許。
shell> sudo chown -R root . #將文件的所有屬性改為root用戶
shell> sudo chown -R mysql data #將數據目錄的所有屬性改為MySQL用戶
shell> sudo chgrp -R mysql . #將組屬性改為MySQL組
在server2,server3上上配置my.cnf
sudo nano /etc/my.cnf
在結尾增加:
程序代碼
[MySQLd]
ndbcluster
ndb-connectstring=192.85.1.5
[MySQL_CLUSTER]
ndb-connectstring= 192.85.1.5
在管理節點:server1:192.85.1.5上進行配置
程序代碼
#mkdir –p /usr/local/mysql/MySQL-cluster/
#cd /usr/local/mysql/MySQL-cluster
#vim config.ini
[NDBD DEFAULT]
NoOfReplicas=2
[MySQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
#設置管理節點服務器
[NDB_MGMD]
hostname=192.85.1.5
#MGM上保存日志的目錄
datadir=/usr/local/mysql/MySQL-cluster/
#設置存儲節點服務器(NDB節點)
[NDBD]
hostname=192.85.1.4
datadir=/var/lib/MySQL-cluster
#第二個NDB節點
[NDBD]
hostname=192.85.1.9
datadir=/var/lib/MySQL-cluster/
#設置SQL節點服務器[MySQLD]
[MySQLD]
在server2。server3上創建MySQL-cluster目錄,
sudo mkdir -p /var/lib/MySQL-cluster
五、啟動
1.啟動管理:
server1:192.85.1.5
程序代碼
#/usr/local/mysql/bin/ndb_mgmd -f /usr/local/mysql/MySQL-cluster/config.ini
2.啟動存儲節點
server2:192.85.1.4
server3:192.85.1.9
程序代碼
# /usr/local/MySQL/bin/ndbd –initial (第一次啟動或管理節點的config.ini發生改變)
#/usr/local/MySQL/bin/ndbd (以後啟動用這條)
3.啟動SQL節點
server2:192.85.1.4
server3:192.85.1.9
# /usr/local/mysql/bin/mysqld_safe --user=MySQL &
六、管理
1.在管理節點server1:192.85.1.5上操作
程序代碼
# /usr/local/MySQL/bin/ndb_mgm
-- NDB Cluster -- Management ClIEnt --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.85.1.4 (Version: 5.1.5, Nodegroup: 0)
id=3 @192.85.1.9 (Version: 5.1.5, Nodegroup: 0, Master)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.1.11.143 (Version: 5.1.5)
[MySQLd(API)] 2 node(s)
id=4 @192.85.1.4 (Version: 5.1.5)
id=5 @192.85.1.9 (Version: 5.1.5)
ndb_mgm>
2.在SQL節點
server2:192.85.1.4
server3:192.85.1.9
程序代碼
#sudo /usr/local/mysql/bin/MySQL –u root –p (默認密碼為空)
MySQL>use test;
MySQL> Create TABLE test (name int(10)) ENGINE=NDBCLUSTER;接下來可以在兩個SQL節點對表test進行操作,觀察數據是否同步.在server2上,插入一條數據,查看server2上是否存在注意:如果要將現有的數據庫轉移到MySQL集群中,應該將數據表的格式有MyISAM或InnoDB該為NDBCLUSTER。創建表時:CREATE TABLE tbl_name (col_name column_definitions) ENGINE=NDBCLUSTER;
Alternatively, for an existing table that uses a different storage engine,
use ALTER TABLE to change the table to use NDBCLUSTER: ALTER TABLE tbl_name ENGINE=NDBCLUSTER;