日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

如何搭建一个 MySQL 分布式集群

發(fā)布時間:2025/3/21 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何搭建一个 MySQL 分布式集群 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者丨茶軸的青春

https://segmentfault.com/a/1190000016829266?utm_source=tag-newest

1、準(zhǔn)備集群搭建環(huán)境

使用6臺虛擬機(jī)來搭建 MySQL分布式集群 ,相應(yīng)的實(shí)驗(yàn)環(huán)境與對應(yīng)的MySQL節(jié)點(diǎn)之間的對應(yīng)關(guā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)該在啟動其他節(jié)點(diǎn)之前啟動這類節(jié)點(diǎn)。MGM節(jié)點(diǎn)是用命令“ndb_mgmd”啟動的;

數(shù)據(jù)節(jié)點(diǎn)(NDB):這類節(jié)點(diǎn)用于保存Cluster的數(shù)據(jù),數(shù)據(jù)節(jié)點(diǎn)的數(shù)目與副本的數(shù)目相關(guān),是片段的倍數(shù)。例如,對于兩個副本,每個副本有兩個片段,那么就有4個數(shù)據(jù)節(jié)點(diǎn),沒有必要設(shè)定過多的副本,在NDB中數(shù)據(jù)會盡量的保存在內(nèi)存中。數(shù)據(jù)節(jié)點(diǎn)使用命令“ndb”啟動的;

SQL節(jié)點(diǎn):這是用來訪問Cluster數(shù)據(jù)的節(jié)點(diǎn),對于MySQL Cluster,客戶端節(jié)點(diǎn)是使用NDB Cluster存儲引擎的傳統(tǒng)MySQL服務(wù)器。通常,SQL節(jié)點(diǎn)使用命令“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]運(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í)行上述安裝命令,從而完成對mysql的安裝;

?

4、集群配置與啟動

1]在管理節(jié)點(diǎn)上需要完成對于集群整體的配置配置:在/var/lib/mysql-cluster/config.ini中實(shí)現(xiàn)如下的配置信息:

2]在數(shù)據(jù)節(jié)點(diǎn)中需要在my.cnf中完成對于數(shù)據(jù)節(jié)點(diǎn)的相關(guān)配置信息,如下:

需要指明配置的數(shù)據(jù)節(jié)點(diǎn)的根目錄,數(shù)據(jù)目錄,socket連接配置,用戶配置,以及對應(yīng)的管理節(jié)點(diǎn)的ip地址配置;將配置完成的配置文件移動到/etc/my.cnf,完成;

3]在SQL節(jié)點(diǎn)上完成對于SQL節(jié)點(diǎn)的配置信息,同樣的是在my.cnf中完成相應(yīng)配置信息,并將配置文件移動到/etc/my.cnf中,相應(yīng)的配置信息的設(shè)定如下所示:

完成以上配置后,就可以啟動集群中的各個節(jié)點(diǎn)了。

?

5、集群啟動

在啟動mysql集群的時候,注意首先要啟動管理節(jié)點(diǎn),并依次啟動其他等若干個節(jié)點(diǎn),相應(yīng)的啟動步驟如下:

1]在管理節(jié)點(diǎn)上,切換到/usr/local/mysql/bin目錄下,執(zhí)行ndb_mgmd -f /var/lib/mysql-cluster/config.ini命令,完成管理節(jié)點(diǎn)的啟動;

2]在各個數(shù)據(jù)節(jié)點(diǎn)上,切換到/usr/local/mysql/bin目錄下,執(zhí)行ndbd --initial(第一次啟動時,否則執(zhí)行ndbd即可),完成對數(shù)據(jù)節(jié)點(diǎn)的啟動;

3]在各個SQL節(jié)點(diǎn)上,同樣切換到/usr/local/mysql/bin目錄下,執(zhí)行mysqld_safe --user=root完成啟動;

4]在管理節(jié)點(diǎn)上運(yùn)行ndb_mgm命令,進(jìn)入數(shù)據(jù)庫管理的客戶端,輸入show命令,查看與之相連接的各個節(jié)點(diǎn)的狀態(tài);

5]在SQL節(jié)點(diǎn)上分別進(jìn)入系統(tǒng)的安全狀態(tài),并完成對root用戶的密碼修改,運(yùn)行以下指令,進(jìn)行密碼修改:

A use mysql,切換到mysql數(shù)據(jù)庫;

B UPDATE user SET Password = PASSWORD('123456')WHERE user = 'root';從而實(shí)現(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é)點(diǎn)上執(zhí)行創(chuàng)建數(shù)據(jù)庫,并創(chuàng)建一張表,并完成相應(yīng)的數(shù)據(jù)插入,如下:

create?database?ctest;?//創(chuàng)建數(shù)據(jù)庫create?table?test(id?int?primarykey;?//創(chuàng)建一張表 );insert?into?test?(id) values(1); //完成數(shù)據(jù)插入

登錄另外一個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é)

以上是生活随笔為你收集整理的如何搭建一个 MySQL 分布式集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。