1钉迷、準(zhǔn)備集群搭建環(huán)境
使用6臺虛擬機(jī)來搭建MySQL分布式集群至非,相應(yīng)的實驗環(huán)境與對應(yīng)的MySQL節(jié)點之間的對應(yīng)關(guān)系如下圖所示:
管理節(jié)點(MGM):這類節(jié)點的作用是管理MySQLCluster內(nèi)的其他節(jié)點,如提供配置數(shù)據(jù)糠聪,并停止節(jié)點荒椭,運行備份等。由于這類節(jié)點負(fù)責(zé)管理其他節(jié)點的配置舰蟆,應(yīng)該在啟動其他節(jié)點之前啟動這類節(jié)點趣惠。MGM節(jié)點是用命令“ndb_mgmd”啟動的;
數(shù)據(jù)節(jié)點(NDB):這類節(jié)點用于保存Cluster的數(shù)據(jù)身害,數(shù)據(jù)節(jié)點的數(shù)目與副本的數(shù)目相關(guān)味悄,是片段的倍數(shù)。例如塌鸯,對于兩個副本侍瑟,每個副本有兩個片段,那么就有4個數(shù)據(jù)節(jié)點丙猬,沒有必要設(shè)定過多的副本涨颜,在NDB中數(shù)據(jù)會盡量的保存在內(nèi)存中。數(shù)據(jù)節(jié)點使用命令“ndb”啟動的茧球;
SQL節(jié)點:這是用來訪問Cluster數(shù)據(jù)的節(jié)點唐础,對于MySQL Cluster椒袍,客戶端節(jié)點是使用NDB Cluster存儲引擎的傳統(tǒng)MySQL服務(wù)器钻趋。通常州疾,SQL節(jié)點使用命令“mysqld-ndbcluster”啟動的督暂;
2、準(zhǔn)備安裝包
在官網(wǎng)上下載mysql的安裝包: mysql-cluster-gpl-7.4.11-Linux-glibc2.5-x86_64.tar.gz穷吮,并進(jìn)行解壓逻翁。
3、集群搭建流程
1]將上述安裝包解壓出來的文件都移到/usr/local/mysql下酒来;
2]運行script目錄下的mysql-install-db.sh腳本卢未,運行命令為./mysql-install-db.sh --user=root--basedir =/usr/local/mysql --datadir=/usr/local/mysql;注意其中用戶為root的名稱需要跟配置文件my.cnf中的相同堰汉;
在管理節(jié)點辽社,數(shù)據(jù)節(jié)點,SQL節(jié)點上都執(zhí)行上述安裝命令翘鸭,從而完成對mysql的安裝滴铅;
4、集群配置與啟動
1]在管理節(jié)點上需要完成對于集群整體的配置配置:在/var/lib/mysql-cluster/config.ini中實現(xiàn)如下的配置信息:
2]在數(shù)據(jù)節(jié)點中需要在my.cnf中完成對于數(shù)據(jù)節(jié)點的相關(guān)配置信息就乓,如下:
需要指明配置的數(shù)據(jù)節(jié)點的根目錄汉匙,數(shù)據(jù)目錄,socket連接配置生蚁,用戶配置噩翠,以及對應(yīng)的管理節(jié)點的ip地址配置;將配置完成的配置文件移動到/etc/my.cnf邦投,完成伤锚;
3]在SQL節(jié)點上完成對于SQL節(jié)點的配置信息,同樣的是在my.cnf中完成相應(yīng)配置信息志衣,并將配置文件移動到/etc/my.cnf中屯援,相應(yīng)的配置信息的設(shè)定如下所示:
完成以上配置后,就可以啟動集群中的各個節(jié)點了念脯。
5狞洋、集群啟動
在啟動mysql集群的時候,注意首先要啟動管理節(jié)點绿店,并依次啟動其他等若干個節(jié)點吉懊,相應(yīng)的啟動步驟如下:
1]在管理節(jié)點上,切換到/usr/local/mysql/bin目錄下惯吕,執(zhí)行ndb_mgmd -f /var/lib/mysql-cluster/config.ini命令惕它,完成管理節(jié)點的啟動;
2]在各個數(shù)據(jù)節(jié)點上废登,切換到/usr/local/mysql/bin目錄下,執(zhí)行ndbd --initial(第一次啟動時郁惜,否則執(zhí)行ndbd即可)堡距,完成對數(shù)據(jù)節(jié)點的啟動甲锡;
3]在各個SQL節(jié)點上,同樣切換到/usr/local/mysql/bin目錄下羽戒,執(zhí)行mysqld_safe --user=root完成啟動缤沦;
4]在管理節(jié)點上運行ndb_mgm命令,進(jìn)入數(shù)據(jù)庫管理的客戶端易稠,輸入show命令缸废,查看與之相連接的各個節(jié)點的狀態(tài);
5]在SQL節(jié)點上分別進(jìn)入系統(tǒng)的安全狀態(tài)驶社,并完成對root用戶的密碼修改企量,運行以下指令,進(jìn)行密碼修改:
A use mysql亡电,切換到mysql數(shù)據(jù)庫届巩;
B UPDATE user SET Password = PASSWORD('123456')WHERE user = 'root';從而實現(xiàn)對root密碼的修改;
C flush privilege份乒,完成修改恕汇;
6]修改使得任意主機(jī)都能連得上mysql,進(jìn)行如下修改或辖,同樣安裝第5步進(jìn)入安全模式瘾英,并完成相應(yīng)的修改,如下:
grant all on‘*.*’to ‘root@'%' identified by '123456';
這樣就可以使得任意一個主機(jī)都可以通過root用戶來登錄mysql了颂暇;
6缺谴、集群測試
在集群上的一個SQL節(jié)點上執(zhí)行創(chuàng)建數(shù)據(jù)庫,并創(chuàng)建一張表蟀架,并完成相應(yīng)的數(shù)據(jù)插入瓣赂,如下:
A create database ctest; //創(chuàng)建數(shù)據(jù)庫
B create table test(
id int primarykey片拍; //創(chuàng)建一張表
)煌集;
C insert into test (id)values(1); //完成數(shù)據(jù)插入
登錄另外一個SQL節(jié)點,并執(zhí)行SQL查詢操作捌省,看數(shù)據(jù)庫中是否已經(jīng)有數(shù)據(jù)苫纤,如下:
select * from ctest;
如果有數(shù)據(jù),表示數(shù)據(jù)插入成功纲缓;
7卷拘、關(guān)閉集群
1]首先關(guān)閉管理節(jié)點和數(shù)據(jù)節(jié)點,需要在管理節(jié)點上執(zhí)行命令祝高,如下:./ndb_mgm -e shutdown;
2]然后關(guān)閉SQL節(jié)點栗弟,在SQL節(jié)點上執(zhí)行命令/usr/local/mysql/support-fies/mysql.server stop(其中/usr/local/mysql/是mysql的安裝目錄).從而關(guān)閉SQL節(jié)點;