1、準備node
一、準備服務器mysql
計劃創建有5個節點的MySQL CLuster體系,須要用到5臺服務器,可是咱們作實驗時沒有這麼多機器,能夠只用2臺,我就是一臺本機,一臺虛擬機搭建了有5個節點的MySQL CLuster體系,將一個SQL節點一個數據節點一個SQL節點放在了一臺服務器上(192.168.1.252),將另外一個SQL節點和一個數據節點放在了另一臺服務器上(192.168.1.52)。linux
節點 | 對應的IP和端口 |
管理節點(1個) | 192.168.1.252 |
SQL節點 (2個) | 192.168.1.252:3331 |
192.168.1.52:3331 | |
數據節點 (2個) | 192.168.1.252 |
192.168.1.52 |
二、準備軟件包sql
如今的mysql提供了一個專門做集羣的安裝包,這樣就不用一個個的下載所須要的工具了。我在網上找到了最新的並且下載比較快的資源,第一步先是下載,有200M左右。shell
cd /var/tmp
wget http://mysql.ntu.edu.tw/Downloads/MySQL-Cluster-7.1/
mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz
2、安裝數據庫
一、數據節點和SQL節點vim
第一步 添加mysql用戶和組,這是必需的。服務器
groupadd mysql
useradd -g mysql mysql
第二步 開始安裝,下載的版本是免編譯的,複製過來就能夠用了。socket
cd /var/tmp
tar -C /usr/local-zxvf mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz
cd /usr/local
mv mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz mysql
第三步 在mysql修改目錄權限,這也是必需的,否則第四步會報錯的。工具
cd mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
第四步 安裝初始的數據庫表
scripts/mysql_install_db --user=mysql
第五步 設置mysql服務爲開機自啓動
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
第六步 啓動mysql服務,若是報錯請參考
service mysqld start
這六步,在252和52服務器上都執行一次,數據節點和SQL節點就算安裝好了。
二、管理節點
管理節點的安裝更簡單,只要在252服務器上覆制些文件出來就好了,雖然只有一步,便這一步在目前環境下(管理節點和SQL節點在同一臺服務器上)也不是必需的。
cd mysql
cp bin/ndb_mgm*/usr/local/bin
cd /usr/local/bin
chmod +x ndb_mgm*
管理節點只要ndb_mgm和ndb_mgmd兩個文件和一個配置文件便可,所以把這三個文件複製到那裏,那裏就是管理節點了。ndb_mgmd是mysql cluster管理服務器,ndb_mgm是客戶端管理工具,等一下會用到它們的。到目前爲止兩個SQL節點兩個數據節點和一個管理節點都安裝完成了,可是還不能工做,得進行配置,把這幾個節點聯繫在一塊兒協同工做。
3、配置
一、數據節點和SQL節點
mysql服務啓動時會默認加載/etc/my.cnf做爲其配置文件,要將一個mysql服務器配置成一個數據節點和SQL節點也很是的簡單,這是配置前的my.cnf的內容:
[client]
port =3306
socket =/tmp/mysql.sock
[mysqld]
basedir =/usr/local/mysql/
datadir =/usr/local/mysql/data
user = mysql
log-error =/var/lib/mysql/mysqld.err
只要在內容結尾加上4行就將這個mysql服務器變成了一個數據節點和SQL節點。
ndbcluster #運行NDB存儲引擎
#指定管理節點 以上兩行聲明其爲SQL節點
ndb-connectstring=192.168.1.252
[mysql_cluster]
#指定管理節點 以上兩行聲明其爲數據節點
ndb-connectstring=192.168.1.252
注意兩臺服務器都得這樣配置。
二、管理節點
管理節點的配置複雜一點,在管理服務器252的/var/lib/mysql-cluster/目錄中建立config.ini文件。
cd /var/lib
mkdir mysql-cluster
cd mysql-cluster
vim config.ini
在config.ini文件中添加如下內容:
[NDBD DEFAULT]
NoOfReplicas=1 #每一個數據節點的鏡像數量
DataMemory=500M #每一個數據節點中給數據分配的內存
IndexMemory=300M #每一個數據節點中給索引分配的內存
[TCP DEFAULT]
portnumber=2202 #數據節點的默認鏈接端口
[NDB_MGMD] #配置管理節點
hostname=192.168.1.252
datadir=/var/lib/mysql-cluster/ #管理節點數據(日誌)目錄
[NDBD] #數據節點配置
hostname=192.168.1.252
datadir=/usr/local/mysql/data/ #數據節點目錄
[NDBD]
hostname=192.168.1.52
datadir=/usr/local/mysql/data/
[MYSQLD] #SQL節點目錄
hostname=192.168.1.252
[MYSQLD]
hostname=192.168.1.52
[NDBD DEFAULT]:表示每一個數據節點的默認配置在每一個節點的[NDBD]中不用再寫這些選項,只能有一個。
[NDB_MGMD]:表示管理節點的配置,只有一個。
[NDBD]:表示每一個數據節點的配置,能夠有多個。
[MYSQLD]:表示SQL節點的配置,能夠有多個,分別寫上不一樣SQL節點的IP地址,也能夠什麼都不寫,只保留一個空節點,表示任意一個IP地址均可以進行訪問,此節點的個數代表了能夠用來鏈接數據節點的SQL節點總數。
4、啓動
一、管理節點
mysql cluster 須要各個節點都 進行啓動後才能夠工做,節點的啓動順序爲管理節點->數據節點->SQL節點。首先啓動管理節點
cd /usr/local/bin
./ndb_mgmd -f /var/lib/mysql-cluster/config.ini
命令行中的ndb_mgmd是mysql cluster的管理服務器,後面的-f表示後面的參數是啓動的參數配置文件。若是在啓動後過了幾天又添加了一個數據節點,這時修改了配置文件啓動時就必須加上--initial參數,否則添加的節點不會做用在mysql cluster中。
./ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
啓動時可能會報個WARNING,如WARNING -- at line 7: [TCP] portnumber is deprecated,這個不用管。能夠正常工做的。
二、數據節點
安裝後第一次啓動數據節點時要加上--initial參數,其它時候不要加,除非是在備份、恢復或配置變化後重啓時。
cd mysql/bin/ndbd --initial
若是顯示如下信息說明啓動完成:
2010-12-31 12:48:03 [ndbd] INFO -- Angel connected to '192.168.1.252:1186'
2010-12-31 12:48:03 [ndbd] INFO -- Angel allocated nodeid: 3
三、SQL節點
service mysqld start
四、客戶端管理
cd /usr/local/bin
./ndb_mgm
這時就進入到客戶端,能夠對mysql cluster進行各項操做,進入後會有ndb_mgm > 提示符出現,首先來查看各節點的鏈接狀況,在ndb_mgm> 提示符下輸入show:
ndb_mgm> show
ClusterConfiguration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.1.252 (mysql-5.1.51 ndb-7.1.9,Nodegroup:0,Master)
id=3 @192.168.1.52 (mysql-5.1.51 ndb-7.1.9,Nodegroup:1)
[ndb_mgmd(MGM)]1 node(s)
id=1 @192.168.1.252 (mysql-5.1.51 ndb-7.1.9)
[mysqld(API)] 2 node(s)
id=4 @192.168.1.252 (mysql-5.1.51 ndb-7.1.9)
id=5 @192.168.1.52 (mysql-5.1.51 ndb-7.1.9)
能夠看到各個節點已經鏈接上了,至此,mysql cluster配置完成。
5、關閉
mysql cluster的關閉也很簡單,只需在ndb_mgm> 提示符下輸入 shutdown便可,這時會顯示各節點的關閉信息,再輸入exit便可退出ndb_mgm管理,回到shell中。雖然mysql cluster 關閉了,可是SQL節點的mysql服務並不會中止的。接下來就能夠作各類試驗了