一、準備集羣搭建環境mysql
使用6臺虛擬機來搭建MySQL分佈式集羣,相應的實驗環境與對應的MySQL節點之間的對應關係以下圖所示:sql
管理節點(MGM):這類節點的做用是管理MySQLCluster內的其餘節點,如提供配置數據,並中止節點,運行備份等。因爲這類節點負責管理其餘節點的配置,應該在啓動其餘節點以前啓動這類節點。MGM節點是用命令「ndb_mgmd」啓動的;數據庫
數據節點(NDB):這類節點用於保存Cluster的數據,數據節點的數目與副本的數目相關,是片斷的倍數。例如,對於兩個副本,每一個副本有兩個片斷,那麼就有4個數據節點,沒有必要設定過多的副本,在NDB中數據會盡可能的保存在內存中。數據節點使用命令「ndb」啓動的;安全
SQL節點:這是用來訪問Cluster數據的節點,對於MySQL Cluster,客戶端節點是使用NDB Cluster存儲引擎的傳統MySQL服務器。一般,SQL節點使用命令「mysqld-ndbcluster」啓動的;性能優化
二、準備安裝包服務器
在官網上下載mysql的安裝包: mysql-cluster-gpl-7.4.11-Linux-glibc2.5-x86_64.tar.gz,並進行解壓。架構
三、集羣搭建流程併發
1]將上述安裝包解壓出來的文件都移到/usr/local/mysql下;socket
2]運行script目錄下的mysql-install-db.sh腳本,運行命令爲./mysql-install-db.sh --user=root--basedir =/usr/local/mysql --datadir=/usr/local/mysql;注意其中用戶爲root的名稱須要跟配置文件my.cnf中的相同;分佈式
在管理節點,數據節點,SQL節點上都執行上述安裝命令,從而完成對mysql的安裝;
四、集羣配置與啓動
1]在管理節點上須要完成對於集羣總體的配置配置:在/var/lib/mysql-cluster/config.ini中實現以下的配置信息:
2]在數據節點中須要在my.cnf中完成對於數據節點的相關配置信息,以下:
須要指明配置的數據節點的根目錄,數據目錄,socket鏈接配置,用戶配置,以及對應的管理節點的ip地址配置;將配置完成的配置文件移動到/etc/my.cnf,完成;
3]在SQL節點上完成對於SQL節點的配置信息,一樣的是在my.cnf中完成相應配置信息,並將配置文件移動到/etc/my.cnf中,相應的配置信息的設定以下所示:
完成以上配置後,就能夠啓動集羣中的各個節點了。
五、集羣啓動
在啓動mysql集羣的時候,注意首先要啓動管理節點,並依次啓動其餘等若干個節點,相應的啓動步驟以下:
1]在管理節點上,切換到/usr/local/mysql/bin目錄下,執行ndb_mgmd -f /var/lib/mysql-cluster/config.ini命令,完成管理節點的啓動;
2]在各個數據節點上,切換到/usr/local/mysql/bin目錄下,執行ndbd --initial(第一次啓動時,不然執行ndbd便可),完成對數據節點的啓動;
3]在各個SQL節點上,一樣切換到/usr/local/mysql/bin目錄下,執行mysqld_safe --user=root完成啓動;
4]在管理節點上運行ndb_mgm命令,進入數據庫管理的客戶端,輸入show命令,查看與之相鏈接的各個節點的狀態;
5]在SQL節點上分別進入系統的安全狀態,並完成對root用戶的密碼修改,運行如下指令,進行密碼修改:
A use mysql,切換到mysql數據庫;
B UPDATE user SET Password = PASSWORD('123456')WHERE user = 'root';從而實現對root密碼的修改;
C flush privilege,完成修改;
6]修改使得任意主機都能連得上mysql,進行以下修改,一樣安裝第5步進入安全模式,並完成相應的修改,以下:
grant all on‘*.*’to ‘root@'%' identified by '123456';
這樣就可使得任意一個主機均可以經過root用戶來登陸mysql了;
六、集羣測試
在集羣上的一個SQL節點上執行建立數據庫,並建立一張表,並完成相應的數據插入,以下:
A create database ctest; //建立數據庫
B create table test(
id int primarykey; //建立一張表
);
C insert into test (id)values(1); //完成數據插入
登陸另一個SQL節點,並執行SQL查詢操做,看數據庫中是否已經有數據,以下:
select * from ctest;
若是有數據,表示數據插入成功;
七、關閉集羣
1]首先關閉管理節點和數據節點,須要在管理節點上執行命令,以下:./ndb_mgm -e shutdown;
2]而後關閉SQL節點,在SQL節點上執行命令/usr/local/mysql/support-fies/mysql.server stop(其中/usr/local/mysql/是mysql的安裝目錄).從而關閉SQL節點;
在此我向你們推薦一個架構學習交流羣。交流學習羣號: 744642380 , 裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構等這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良