環(huán)境:
一臺(tái)10.32.33.120 做一個(gè)數(shù)據(jù)節(jié)點(diǎn),SQL節(jié)點(diǎn),管理節(jié)點(diǎn)
一臺(tái) 10.32.34.116 做一個(gè)數(shù)據(jù)節(jié)點(diǎn),SQL節(jié)點(diǎn)。
操作系統(tǒng)都是 CentOS5.4 64位。
一 下載MySql Cluster7.2.5
http://www.mysql.com/downloads/cluster/
注:如果已經(jīng)存在MySql,需要先刪除,方法:
如果能聯(lián)網(wǎng) yum remove mysql
否則手動(dòng)刪除mysql
先看看都安裝了什么包:
# rpm -qa|grep MySQL
然后把這些包都卸載掉
rpm -e MySQL-server-5.5.21-1.linux2.6
rpm -e MySQL-client-5.5.20-1.linux2.6
二 下載后解壓
先設(shè)置10.32.33.120,把MySql Cluster下載到/downfiles下
#cd downfiles
#tar –zxvf mysql-cluster-gpl-7.2.5-linux2.6-x86_64.tar.gz //解壓
三 把解壓后的文件拷貝到/usr/local下,名字為mysql
#cp /downfiles/mysql-cluster-gpl-7.2.5-linux2.6-x86_64 /usr/local/mysql
#cd /usr/local/mysql
# chown –R root . //把mysql的目錄設(shè)置成所有者為root
#chown –R mysql /data //把data目錄設(shè)置所有者為mysql
#chgrp –R mysql . //改成所屬組為mysql
#cd scripts/
#mysql_install_db –user=mysql 這句就是安裝了
四 設(shè)置mysql服務(wù)為開機(jī)自啟動(dòng)
#chmod +x /etc/rc.d/init.d/mysqld //給這個(gè)文件賦予可修改權(quán)限
#chkconfig --add mysqld // chkconfig命令主要用來更新(啟動(dòng)或停止)和查詢系統(tǒng)服務(wù)的運(yùn)行級(jí)信息,chkconfig --add name:增加一項(xiàng)新的服務(wù)
此時(shí)還不能開機(jī)自啟,還需要設(shè)置環(huán)境變量
#vi /etc/profile
最后面加上兩句
PATH=$PATH:/usr/local/mysql/bin
export PATH
以上操作在兩臺(tái)服務(wù)器上做同樣操作。
五:配置
1、配置管理節(jié)點(diǎn)
拷貝/usr/local/mysql/bin/ndb_mgm,ndb_mgmd兩個(gè)文件到/usr/local/bin
#cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin
#mkdir /var/lib/mysql-cluster
#vim /var/lib/mysql-cluster/config.ini
輸入下面內(nèi)容:
[ndbd default]
NoOfReplicas=1 #每個(gè)數(shù)據(jù)節(jié)點(diǎn)的鏡像數(shù)量
DataMemory=200M #每個(gè)數(shù)據(jù)節(jié)點(diǎn)中給數(shù)據(jù)分配的內(nèi)存
IndexMemory=20M #每個(gè)數(shù)據(jù)節(jié)點(diǎn)中給索引分配的內(nèi)存
[ndb_mgmd] #配置管理節(jié)點(diǎn)
NodeId=1
hostname=10.32.34.116
datadir=/var/lib/mysql-cluster/ #管理節(jié)點(diǎn)數(shù)據(jù)(日志)目錄
[ndbd] #數(shù)據(jù)節(jié)點(diǎn)配置
NodeId=2
hostname=10.32.33.120
datadir=/usr/local/mysql/data/ #數(shù)據(jù)節(jié)點(diǎn)目錄
[ndbd]
NodeId=3
hostname=10.32.34.116
datadir=/usr/local/mysql/data/
[mysqld]
hostname=10.32.33.120
[mysqld]
hostname=10.32.34.116
[mysqld] #一定要留一個(gè)空的,以備擴(kuò)展使用,否則會(huì)出現(xiàn)Failed to allocate nodeid No free node id found for ndbd(NDB)錯(cuò)誤
[mysqld]
注:配置時(shí), []右邊的注釋不要加上,否則系統(tǒng)不認(rèn)。
[NDBD DEFAULT]:表示每個(gè)數(shù)據(jù)節(jié)點(diǎn)的默認(rèn)配置在每個(gè)節(jié)點(diǎn)的[NDBD]中不用再寫這些選項(xiàng),只能有一個(gè)。
[NDB_MGMD]:表示管理節(jié)點(diǎn)的配置,只有一個(gè)。
[NDBD]:表示每個(gè)數(shù)據(jù)節(jié)點(diǎn)的配置,可以有多個(gè)。
[MYSQLD]:表示SQL節(jié)點(diǎn)的配置,可以有多個(gè),分別寫上不同SQL節(jié)點(diǎn)的IP地址。
2、配置數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)
mysql服務(wù)啟動(dòng)時(shí)會(huì)默認(rèn)加載/etc/my.cnf作為其配置文件,修改10.32.33.120上的my.cnf
[mysqld]
ndbcluster #運(yùn)行NDB存儲(chǔ)引擎
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
[mysql_cluster]
ndb-connectstring=10.32.34.116 #聲明管理節(jié)點(diǎn)
拷貝一份到另一臺(tái)10.32.34.116
#scp /etc/my.cnf 10.32.34.116:/etc/
六 啟動(dòng)
節(jié)點(diǎn)的啟動(dòng)順序?yàn)楣芾砉?jié)點(diǎn)->數(shù)據(jù)節(jié)點(diǎn)->SQL節(jié)點(diǎn)。
1、120上啟動(dòng)管理節(jié)點(diǎn)
#cd /usr/local/bin
# ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini // ndb_mgmd是mysqlcluster的管理服務(wù)器,后面的-f表示后面的參數(shù)是啟動(dòng)的參數(shù)配置文件。如果在啟動(dòng)后過了幾天又添加了一個(gè)數(shù)據(jù)節(jié)點(diǎn),這時(shí)修改了配置文件啟動(dòng)時(shí)就必須加上--initial參數(shù),不然添加的節(jié)點(diǎn)不會(huì)作用在mysql cluster中
2、啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)
安裝后第一次啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)時(shí)要加上--initial參數(shù),其它時(shí)候不要加,除非是在備份、恢復(fù)或配置變化后重啟時(shí)
#cd /var/local/mysql/bin/ndbd –initial
2012-03-28 02:01:38 [ndbd] INFO -- Angel connected to '10.32.33.120:1186'
2012-03-28 02:01:38 [ndbd] INFO -- Angel allocated nodeid: 36
出現(xiàn)這種信息表示啟動(dòng)成功.
3、啟動(dòng)SQL節(jié)點(diǎn)
#mysqld_safe --ndb_nodeid=5 --user=mysql &
同樣方法,啟動(dòng)另外一個(gè)機(jī)器,注意nodeid的編號(hào)。
4、客戶端查看
#cd /usr/local/bin
#.ndb_mgm
ndb_mgm> show
ndb_mgm> show
Cluster Configuration
---------------------
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @10.32.33.120 (mysql-5.5.20 ndb-7.2.5, Nodegroup: 0, Master)
id=3 @10.32.34.116 (mysql-5.5.20 ndb-7.2.5, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.32.34.116 (mysql-5.5.20 ndb-7.2.5)
[mysqld(API)] 4 node(s)
id=4 @10.32.33.120 (mysql-5.5.20 ndb-7.2.5)
id=5 @10.32.34.116 (mysql-5.5.20 ndb-7.2.5)
id=6 (not connected, accepting connect from any host)
id=7 (not connected, accepting connect from any host)
可以看到各個(gè)節(jié)點(diǎn)已經(jīng)連接上了, mysql cluster配置完成.
如果看不到上述信息,可能是防火墻問題,你可以選擇把CentOS的防火墻關(guān)掉,命令為:/etc/init.d/iptables stop
管理節(jié)點(diǎn)關(guān)閉,在ndb_mgm>提示符下輸入shutdown,再輸入exit即可退出。
7 測試。
1、從SQL節(jié)點(diǎn)A登錄,創(chuàng)建數(shù)據(jù)庫和表,進(jìn)行簡單測試。
mysql> create database zxztest ;
mysql> use zxztest;
Database changed
mysql> create table test1(id int,name varchar(10)) engine=ndb ;
mysql> insert into test1 values(1,'zhaoxuezhi');
mysql> select * from test1 ;
+------+---------+
| id | name |
+------+---------+
| 1 | zhaoxuezhi |
+------+---------+
登陸B(tài)節(jié)點(diǎn),查看效果,庫,表和數(shù)據(jù)已經(jīng)同步。
從B節(jié)點(diǎn)插入一條數(shù)據(jù),同樣登陸A,也能看到數(shù)據(jù)已經(jīng)同步。
bitsCN.com聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com