Linux下的Mysql集群之路

一。安裝mysql集群版本

首先下載二進(jìn)制版本的mysql集群?傳送門(mén)?。這里我下載的是7.4.13.

二。sql節(jié)點(diǎn):在每一個(gè)主機(jī)上使用root權(quán)限來(lái)執(zhí)行一下步驟。

shell>groupadd mysql

shell>useradd -g mysql -s /bin/false mysql

執(zhí)行上面命令,增加mysql用戶組以及mysql用戶。(注意,有些linux發(fā)行版本可能命令不一樣,例如,我使用的Debian,使用的是上面的命令,但是有些可能是使用 adduser和addgroup命令)。

1. 將下載后的文件放在 /var/tmp 文件夾上,然后創(chuàng)建軟連接。

shell>cd /var/tmp

shell>tar -C /usr/local -xzvf mysql-cluster-gpl-7.4.13-linux2.6.tar.gz

shell>ln -s /usr/local/mysql-cluster-gpl-7.4.13-linux2.6-i686 /usr/local/mysql

2. 進(jìn)入mysql目錄,執(zhí)行提供的腳本創(chuàng)建系統(tǒng)數(shù)據(jù)庫(kù)

shell>cd mysql

shell>scripts/mysql_install_db --user=mysql

3. 為mysql服務(wù)器和數(shù)據(jù)目錄設(shè)置必要的權(quán)限

shell>chown -R root .

shell>chown -R mysql data

shell>chgrp -R mysql .

4. 拷貝mysql的啟動(dòng)腳本到相應(yīng)的目錄,讓它可執(zhí)行,并且設(shè)置為開(kāi)機(jī)啟動(dòng)

shell>cp support-files/mysql.server /etc/rc.d/init.d/

shell>chmod +x /etc/rc.d/init.d/mysql.server

shell>chkconfig --add mysql.server

這里需要注意的是,不同的linxu發(fā)行版本的開(kāi)機(jī)啟動(dòng)腳本的所在目錄可能不盡相同,使用一切手段找到這個(gè)目錄。我的Debian上,目錄是 /etc/init.d

上面的chkconfig命令適用于ret hat,至于其他版本,需要你自己去搜索。在Debian上,命令是 update-rc.d --add mysql.server.

5. 上面每一個(gè)步驟,都需要在每個(gè)sql節(jié)點(diǎn)(主機(jī))上設(shè)置相同的操作。

三。數(shù)據(jù)節(jié)點(diǎn)

安裝數(shù)據(jù)節(jié)點(diǎn)并不需要用到mysqld二進(jìn)制文件,只需要用到 ndbd(單線程)或者ndbmtd(多線程)即可。下面操作使用root權(quán)限

1. 進(jìn)入/var/tmp/mysql目錄,將bin/ndbd拷貝到/usr/local/bin/ndbd,將bin/ndbmtd拷貝到/usr/local/bin/ndbmtd

shell>cd mysql

shell>cp bin/ndbd /usr/local/bin/ndbd

shell>cp bin/ndbmtd /usr/local/bin/ndbmtd

2. 進(jìn)入/usr/local/bin, 執(zhí)行一下命令

shell>cd /usr/local/bin

shell>chmod +x ndb*

四。管理節(jié)點(diǎn)

1. 和上面安裝數(shù)據(jù)節(jié)點(diǎn)一樣,也是不需要mysqld,只需要管理服務(wù)ndb_mgmd即可。順便也安裝一下ndb_mgm命令吧,可以查看并且管理各種節(jié)點(diǎn)。

shell>cd /var/tmp/mysql

shell>cp bin/ndb_mgm* /usr/local/bin

2. 同樣的,進(jìn)入/usr/local/bin,賦予ndb_mgm*相關(guān)權(quán)限

shell>cd /usr/local/bin

shell>chmod +x ndb_mgm*

五。初始化配置文件

1. 每個(gè)數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn)需要一個(gè)配置文件 my.cnf ,用來(lái)配置connection-string(找到相應(yīng)的管理節(jié)點(diǎn)),并且讓mysqld開(kāi)啟?ndbcluster 存儲(chǔ)引擎

2. 每個(gè)管理節(jié)點(diǎn)需要配置文件 config.ini文件,來(lái)配置節(jié)點(diǎn)的部署以及內(nèi)存限制等等相關(guān)事宜。

3. 數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn)配置。使用你喜歡的工具打開(kāi)/etc/my.cnf(不存在的話就新建一個(gè)),比如vim

shell> vi /etc/my.cnf

配置如下

[mysqld]

# Options for mysqld process:

ndbcluster? ? ? ? ? ? ? ? ? ? ??

# run NDB storage engine

[mysql_cluster]

# Options for MySQL Cluster processes:

ndb-connectstring=192.168.0.10?

# location of management server

在數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn)均要配置此文件。

注意:一旦你使用了參數(shù)ndbcluster ndb-connectstring啟動(dòng)mysqld進(jìn)程,正如先前的my.cnf文件的參數(shù)所示。 在集群沒(méi)有完全開(kāi)啟之前,你不能執(zhí)行創(chuàng)建或者改變表的語(yǔ)句,否則會(huì)報(bào)錯(cuò)。真的。

4. 配置管理節(jié)點(diǎn)

使用root權(quán)限執(zhí)行一下步驟

shell>mkdir /var/lib/mysql-cluster

shell>cd /var/lib/mysql-cluster

shell>vi config.ini

鍵入以下代碼

[ndbd default]

# Options affecting ndbd processes on all data nodes:

NoOfReplicas=2? ? # Number of replicas

DataMemory=80M? ? # How much memory to allocate for data storage

IndexMemory=18M? # How much memory to allocate for index storage

# For DataMemory and IndexMemory, we have used the

# default values. Since the "world" database takes up

# only about 500KB, this should be more than enough for

# this example Cluster setup.

[tcp default]

# TCP/IP options:

portnumber=2202? # This the default; however, you can use any

# port that is free for all the hosts in the cluster

# Note: It is recommended that you do not specify the port

# number at all and simply allow the default value to be used

# instead

[ndb_mgmd]

# Management process options:

hostname=192.168.0.10? ? ? ? ? # Hostname or IP address of MGM node

datadir=/var/lib/mysql-cluster? # Directory for MGM node log files

[ndbd]

# Options for data node "A":

# (one [ndbd] section per data node)

hostname=192.168.0.30? ? ? ? ? # Hostname or IP address

datadir=/usr/local/mysql/data? # Directory for this data node's data files

[ndbd]

# Options for data node "B":

hostname=192.168.0.40? ? ? ? ? # Hostname or IP address

datadir=/usr/local/mysql/data? # Directory for this data node's data files

[mysqld]

# SQL node options:

hostname=192.168.0.20? ? ? ? ? # Hostname or IP address

# (additional mysqld connections can be

# specified for this node for various

# purposes such as running ndb_restore)

上面的注釋就不多說(shuō)了(我不懂,哈哈哈)

六。啟動(dòng)Mysql集群

只要配置成功之后,要啟動(dòng)集群并不是一件很難的事情(真的嗎?)。每個(gè)node節(jié)點(diǎn)都分別啟動(dòng)。這里稍微注意的是,管理節(jié)點(diǎn)必須首先啟動(dòng),然后是數(shù)據(jù)節(jié)點(diǎn),最后才是sql節(jié)點(diǎn)。記住,不然會(huì)報(bào)錯(cuò)的。親測(cè)。

1. 啟動(dòng)管理節(jié)點(diǎn)

shell>ndb_mgmd -f /var/lib/mysql-cluster/config.ini

首次啟動(dòng)管理節(jié)點(diǎn),ndb_mgmd必須帶上參數(shù),告訴我們配置文件(使用 -f或者--config-file參數(shù))

2. 在每個(gè)數(shù)據(jù)節(jié)點(diǎn)的主機(jī),執(zhí)行一下命令開(kāi)啟ndbd進(jìn)程

shell>ndbd

3. 如果你使用RPM文件安裝Mysql,你可以(必須)用提供的腳本啟動(dòng)Mysql服務(wù)進(jìn)程啟動(dòng)sql節(jié)點(diǎn)。

4. 如果所有步驟都弄好了,那mysql集群也就算是搭建好了。你可以使用ndb_mgm命令來(lái)管理節(jié)點(diǎn)客戶端(數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn))??雌饋?lái),應(yīng)該像下面所示

shell>ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm>SHOWConnected to Management Server at: localhost:1186Cluster Configuration---------------------

[ndbd(NDB)]? ? 2 node(s)

id=2? ? @192.168.0.30? (Version: 5.6.32-ndb-7.4.13, Nodegroup: 0, *)

id=3? ? @192.168.0.40? (Version: 5.6.32-ndb-7.4.13, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)

id=1? ? @192.168.0.10? (Version: 5.6.32-ndb-7.4.13)

[mysqld(API)]? 1 node(s)

id=4? ? @192.168.0.20? (Version: 5.6.32-ndb-7.4.13)

上面的[mysqld(API)]就是sql節(jié)點(diǎn)了。這就告訴我們一件事,mysqld進(jìn)程作為一個(gè)集群api存在

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容