MySQL分布式集群搭建教程
1 準備集群搭建環(huán)境
使用6臺虛擬機來搭建MYSQL集群,相應的實驗環(huán)境與對應的MYSQL節(jié)點之間的對應關系如下圖所示:
節(jié)點名稱 | 節(jié)點IP | 節(jié)點內(nèi)存 | 節(jié)點硬盤大小 | 節(jié)點CPU | MYSQL節(jié)點角色 | ||
Ubuntu-1 | 192.168.1.26 | 768M | 20G | 30% | 管理節(jié)點(MGM) | ||
Ubuntu-2 | 192.168.1.27 | 768M | 10G | 30% | 數(shù)據(jù)節(jié)點(NDB) | ||
Ubuntu-3 | 192.168.1.28 | 768M | 10G | 30% | 數(shù)據(jù)節(jié)點(NDB) | ||
Ubuntu-4 | 192.168.1.29 | 768M | 10G | 30% | 數(shù)據(jù)節(jié)點(NDB) | ||
Ubuntu-5 | 192.168.1.31 | 768M | 10G | 30% | 客戶(SQL)節(jié)點 | ||
Ubuntu-6 | 192.168.1.32 | 768M | 10G | 30% | 客戶(SQL)節(jié)點 |
管理節(jié)點(MGM)
這類節(jié)點的作用是管理MySQLCluster內(nèi)的其他節(jié)點,如提供配置數(shù)據(jù),并停止節(jié)點,運行備份等。由于這類節(jié)點負責管理其他節(jié)點的配置,應該在啟動其他節(jié)點之前啟動這類節(jié)點。
MGM節(jié)點是用命令“ndb_mgmd”啟動的;
數(shù)據(jù)節(jié)點(NDB)
這類節(jié)點用于保存Cluster的數(shù)據(jù),數(shù)據(jù)節(jié)點的數(shù)目與副本的數(shù)目相關,是片段的倍數(shù)。
例如,對于兩個副本,每個副本有兩個片段,那么就有4個數(shù)據(jù)節(jié)點,沒有必要設定過多的副本,在NDB中數(shù)據(jù)會盡量的保存在內(nèi)存中。
數(shù)據(jù)節(jié)點使用命令“ndb”啟動的;
SQL節(jié)點
這是用來訪問Cluster數(shù)據(jù)的節(jié)點,對于MySQL Cluster,客戶端節(jié)點是使用NDB Cluster存儲引擎的傳統(tǒng)MySQL服務器。
通常,SQL節(jié)點使用命令“mysqld-ndbcluster”啟動的;
2 準備安裝包
在官網(wǎng)上下載mysql的安裝包: mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz,并進行解壓。
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é)點的相關配置信息,如下:
需要指明配置的數(shù)據(jù)節(jié)點的根目錄,數(shù)據(jù)目錄,socket連接配置,用戶配置,以及對應的管理節(jié)點的ip地址配置;將配置完成的配置文件移動到/etc/my.cnf,完成;
3 在SQL節(jié)點上完成對于SQL節(jié)點的配置信息,同樣的是在my.cnf中完成相應配置信息,并將配置文件移動到/etc/my.cnf中,相應的配置信息的設定如下所示:
完成以上配置后,就可以啟動集群中的各個節(jié)點了。
5 集群啟動
在啟動mysql集群的時候,注意首先要啟動管理節(jié)點,并依次啟動其他等若干個節(jié)點,相應的啟動步驟如下:
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命令,進入數(shù)據(jù)庫管理的客戶端,輸入show命令,查看與之相連接的各個節(jié)點的狀態(tài);
5 在SQL節(jié)點上分別進入系統(tǒng)的安全狀態(tài),并完成對root用戶的密碼修改,運行以下指令,進行密碼修改:
A use mysql,切換到mysql數(shù)據(jù)庫; B UPDATE user SET Password = PASSWORD('123456')WHERE user = 'root';從而實現(xiàn)對root密碼的修改; Cflush privilege,完成修改;
6 修改使得任意主機都能連得上mysql,進行如下修改,同樣安裝第5步進入安全模式,并完成相應的修改,如下:
grant all on‘*.*'to ‘root@'%'?identified by '123456';
這樣就可以使得任意一個主機都可以通過root用戶來登錄mysql了;
6 集群測試
在集群上的一個SQL節(jié)點上執(zhí)行創(chuàng)建數(shù)據(jù)庫,并創(chuà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 關閉集群
1 首先關閉管理節(jié)點和數(shù)據(jù)節(jié)點,需要在管理節(jié)點上執(zhí)行命令,如下:./ndb_mgm -e shutdown;
2 然后關閉SQL節(jié)點,在SQL節(jié)點上執(zhí)行命令/usr/local/mysql/support-fies/mysql.server stop(其中/usr/local/mysql/是mysql的安裝目錄).從而關閉SQL節(jié)點;
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
mysql數(shù)據(jù)庫操作_高手進階常用的sql命令語句大全
mysql數(shù)據(jù)庫操作sql命令語句大全:三表連表查詢、更新時批量替換字段部分字符、判斷某一張表是否存在、自動增長恢復從1開始、查詢重復記錄、更新時字段值等于原值加上一個字符串、更新某字段為隨機值、復制表數(shù)據(jù)到另一個表、創(chuàng)建表時拷貝其他表的數(shù)據(jù)和結構...2022-11-11MYSQL的binary解決mysql數(shù)據(jù)大小寫敏感問題的方法
BINARY不是函數(shù),是類型轉(zhuǎn)換運算符,它用來強制它后面的字符串為一個二進制字符串,可以理解為在字符串比較的時候區(qū)分大小寫2013-09-09mysql 一個較特殊的問題:You can''t specify target table ''wms_cabinet
mysql 一個較特殊的問題:You can't specify target table 'wms_cabinet_form' for update in F2010-11-11Mysql 直接查詢存儲的Json字符串中的數(shù)據(jù)
本文主要介紹了Mysql直接查詢存儲的Json字符串中的數(shù)據(jù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02淺析mysql 語句的調(diào)度優(yōu)先級及改變
本篇文章是對mysql語句的調(diào)度優(yōu)先級及改變進行了詳細的分析介紹,需要的朋友參考下2013-06-06MySQL5.6.31 winx64.zip 安裝配置教程詳解
這篇文章主要介紹了MySQL5.6.31 winx64.zip 安裝配置教程詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02