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