溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL 中怎么配置Cluster 7.2.4集群

發(fā)布時(shí)間:2021-08-06 11:42:47 來源:億速云 閱讀:117 作者:Leah 欄目:數(shù)據(jù)庫

MySQL 中怎么配置Cluster 7.2.4集群,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。


準(zhǔn)備 32位和64位版本  3臺服務(wù)器 
202.38.128.153 dbs2 64位
202.122.32.68 dbs1 64位
192.168.32.22 erpdbtest 32位
管理節(jié)點(diǎn)(ndb_mgmd) 192.168.32.22 erpdbtest 32位
數(shù)據(jù)節(jié)點(diǎn)(ndbd)    202.122.32.68 dbs1 64位   202.38.128.153 dbs2 64位
SQL節(jié)點(diǎn)(mysqld) 202.122.32.68  dbs1 64位  202.38.128.153 dbs2 64位
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.4-linux2.6-i686.tar.gz/from/http://gd.tuwien.ac.at/db/mysql/
   www.2cto.com  
卸載Mysql 
rpm –qa | grep SQL
rpm –e mysql...
刪除/etc/my.cnf   /var/lib/mysql
 
關(guān)閉防火墻
Iptables是一個(gè)包含在絕大多數(shù)發(fā)行版中的防火墻。在默認(rèn)安裝的RHEL中,防火墻是打開的,且隨機(jī)啟動,如果要關(guān)閉防火墻,可以使用以下命令:
service iptables stop
以上命令執(zhí)行完畢之后效果只能保持到下次重啟。重啟后的配置就還原了,如果希望能夠在重啟之后還能夠保持防火墻的關(guān)閉狀態(tài),可以使用以下命令:
chkconfig –level 35 iptables off
 
關(guān)閉SELinux
SELinux的全稱是Security-EnhancedLinux,是由美國國家安全局NSA開發(fā)的訪問控制體制。SELinux可以最大限度地保證Linux系統(tǒng)的安全。
在默認(rèn)安裝的Linux系統(tǒng)中,SELinux默認(rèn)是開啟的,配置文件是/etc/selinux/config,一般測試過程中使用“permissive”模式,這樣僅會在違反SELinux規(guī)則時(shí)發(fā)出警告,然后修改規(guī)則,最后由用戶覺得是否執(zhí)行嚴(yán)格“enforcing”的策略,禁止違反規(guī)則策略的行為。規(guī)則決定SELinux的工作行為和方式,策略決定具體的安全細(xì)節(jié)如文件系統(tǒng),文件一致性。在安裝過程中,可以選擇“激活”、“警告”或者“關(guān)閉”SELinux。默認(rèn)設(shè)置為“激活”。
 
為了避免SELinux影響到群集功能,需要關(guān)閉SELinux系統(tǒng)的功能
1、    安裝管理節(jié)點(diǎn)(192.168.32.22) 
解壓文件   www.2cto.com  
tar -zvxf mysql-cluster-gpl-7.2.4-linux2.6-i686.tar.gz
創(chuàng)建安裝目錄 
mkdir -p /usr/local/mysql/bin 
mkdir -p /usr/local/mysql/ndbdata 
添加執(zhí)行文件路徑 
vi ~/.bash_profile 
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin 
拷貝執(zhí)行文件 
cd mysql-cluster-gpl-7.2.4-linux2.6-i686
cp bin/ndb_mgmd /usr/local/mysql/bin
cp bin/ndb_mgm /usr/local/mysql/bin
創(chuàng)建日志文件存儲目錄 
mkdir /var/lib/mysql-cluster 
創(chuàng)建配置文件目錄及文件 
mkdir /usr/local/mysql/cluster-conf 
vi /usr/local/mysql/cluster-conf/config.ini 
編輯配置文件: 
########################以下為配置文件內(nèi)容################# 
 
[ndbd default] 
NoOfReplicas=2 #復(fù)制成員個(gè)數(shù)
DataMemory=80M  #數(shù)據(jù)存儲可以分配的內(nèi)存
IndexMemory=18M #索引存儲可以分配的內(nèi)存 
 
[ndb_mgmd] #定義管理節(jié)點(diǎn)的IP地址或主機(jī)名
id=1
hostname=192.168.32.22 
DataDir=/var/lib/mysql-cluster 
 
[ndbd]  #定義數(shù)據(jù)節(jié)點(diǎn)
id=11 
HostName=202.122.32.68 
DataDir=/usr/local/mysql/ndbdata  
[ndbd]   www.2cto.com  
id=12 
HostName=202.38.128.153
DataDir=/usr/local/mysql/ndbdata 
 
[mysqld]#定義SQL節(jié)點(diǎn)
id=21 
HostName=202.122.32.68 
[mysqld]
id=22 
HostName=202.38.128.153
 
[mysqld]
id=23
 
########################以上為配置文件內(nèi)容#################
2、    安裝數(shù)據(jù)節(jié)點(diǎn) ( 202.122.32.68 dbs1  202.38.128.153 dbs2 )
 
解壓文件
 tar -zxvf mysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gz 
創(chuàng)建安裝目錄
mkdir -p /usr/local/mysql/bin
mkdir -p /usr/local/mysql/ndbdata
拷貝執(zhí)行文件
cp mysql-cluster-gpl-7.2.4-linux2.6-x86_64/bin/ndbd /usr/local/mysql/bin
添加執(zhí)行文件路徑
vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
創(chuàng)建配置文件:
vi /etc/my.cnf
分別在主機(jī)添加如下內(nèi)容:
[mysql_cluster] #配置數(shù)據(jù)節(jié)點(diǎn)連接管理節(jié)點(diǎn)
ndb-connectstring=192.168.32.22
3、安裝SQL節(jié)點(diǎn)(202.122.32.68 dbs1  202.38.128.153 dbs2):
  www.2cto.com  
解壓文件
 tar -zxvf mysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gz 
拷貝安裝文件
mv mysql-cluster-gpl-7.2.4-linux2.6-x86_64 /usr/local/mysql
添加mysql用戶
groupadd mysql
useradd -g mysql mysql
添加權(quán)限
chown -R mysql:mysql /usr/local/mysql
拷貝配置文件
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
初始化
cd /usr/local/
scripts/mysql_install_db --user=mysql
拷貝守護(hù)進(jìn)程所需文件
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
配置守護(hù)進(jìn)程
chkconfig –add mysqld
chkconfig –level 35 mysqld on
添加執(zhí)行文件路徑
vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
更改配置文件
vi /etc/my.cnf
分別編輯如下信息:
[mysqld]  #配置SQL節(jié)點(diǎn)與管理節(jié)點(diǎn)連接
port            = 3306
socket          = /tmp/mysql.sock
ndbcluster
ndb-connectstring=192.168.32.22
4、啟動及關(guān)閉mysql cluster
  www.2cto.com  
啟動順序:管理服務(wù)器->存儲節(jié)點(diǎn)->SQL節(jié)點(diǎn)
a、啟動管理節(jié)點(diǎn)
rm mysql/mysql-cluster/ndb_1_config.bin.1 #不是必須的,如果config.ini有改動則要加上
ndb_mgmd -f /usr/local/mysql/cluster-conf/config.ini
b、啟動存儲節(jié)點(diǎn)
ndbd –initial #(第一次啟動必須添加選項(xiàng),另外備份/恢復(fù),修改配置文件也需要執(zhí)行)
ndbd    #不是第一次啟動需要執(zhí)行的命令
c、啟動SQL節(jié)點(diǎn)
/etc/rc.d/init.d/mysqld start 或service mysqld start
啟動后可以用mysql -uroot -p 驗(yàn)證mysql服務(wù)狀態(tài)
關(guān)閉順序:SQL節(jié)點(diǎn)->管理節(jié)點(diǎn)
a、關(guān)閉SQL節(jié)點(diǎn)
/etc/rc.d/init.d/mysqld stop 或service mysqld stop
b、關(guān)閉管理節(jié)點(diǎn)
ndb_mgm〉 shutdown
 
5、驗(yàn)證配置的正確性
要先啟動管理節(jié)點(diǎn) 再啟動數(shù)據(jù)節(jié)點(diǎn) 等啟動完后 再起sql節(jié)點(diǎn) 否則會出錯(cuò)
1、在管理節(jié)點(diǎn)執(zhí)行:ndb_mgm -> show
 
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=11   @202.122.32.68  (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0, Master)   啟動完
id=12   @202.38.128.153  (mysql-5.5.19 ndb-7.2.4, starting, Nodegroup: 0)  正在起
 
[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.32.22  (mysql-5.5.19 ndb-7.2.4)
 
[mysqld(API)]   3 node(s)
id=21   @202.122.32.68  (mysql-5.5.19 ndb-7.2.4)
id=22   @202.38.128.153  (mysql-5.5.19 ndb-7.2.4)
id=23 (not connected, accepting connect from any host)
  www.2cto.com  
正常狀態(tài)
 
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=11   @202.122.32.68  (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0, Master)
id=12   @202.38.128.153  (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0)
 
[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.32.22  (mysql-5.5.19 ndb-7.2.4)
 
[mysqld(API)]   3 node(s)
id=21   @202.122.32.68  (mysql-5.5.19 ndb-7.2.4)
id=22   @202.38.128.153  (mysql-5.5.19 ndb-7.2.4)
id=23 (not connected, accepting connect from any host)
 
2、在其中一個(gè)SQL節(jié)點(diǎn)創(chuàng)建數(shù)據(jù)庫,添加數(shù)據(jù)。要等啟動完再操作。
 
mysql -uroot -p
create database ndbtest;
use ndbtest;
CREATE TABLE `t1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=ndbcluster  DEFAULT CHARSET=gbk;
 
NDB: Could not acquire global schema lock (266)Time-out in NDB,  
啟動完成前 如果在一個(gè)節(jié)點(diǎn)執(zhí)行添加數(shù)據(jù)庫的操作,不能同步到其他節(jié)點(diǎn)。
 
3、在另一個(gè)SQL節(jié)點(diǎn),如果能夠存在添加的數(shù)據(jù)庫和數(shù)據(jù),則說明配置成功
進(jìn)入sql節(jié)點(diǎn),在test數(shù)據(jù)庫創(chuàng)建表
CREATE TABLE `t1` (  www.2cto.com  
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=ndbcluster  DEFAULT CHARSET=gbk
切換到2臺數(shù)據(jù)節(jié)點(diǎn)服務(wù)器~/mysql/data/ndb_2_fs和~/mysql/data/ndb_3_fs看看,
或者直接去數(shù)據(jù)庫查,數(shù)據(jù)已經(jīng)同步了!
 關(guān)閉集群服務(wù)
關(guān)閉sql節(jié)點(diǎn)等同于停止mysql服務(wù),此時(shí)外界數(shù)據(jù)不將再進(jìn)來。然后關(guān)閉管理節(jié)點(diǎn)
~/mysql/bin/ndb_mgm -e shutdown
rm ~/mysql/mysql-cluster/ndb_1_config.bin.1 #不是必須的,如果config.ini有改動則要加上
這樣操作后,管理節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)都將停止服務(wù)
Notes:
1:如果發(fā)現(xiàn)關(guān)閉一臺機(jī)器的ndbd進(jìn)程,另一臺機(jī)器的ndbd的進(jìn)程也關(guān)閉,則需要修改參數(shù)NoOfReplicas。
2:./ndbd --initial 不能同時(shí)在所有數(shù)據(jù)節(jié)點(diǎn)機(jī)器上執(zhí)行,如執(zhí)行,會刪除所有數(shù)據(jù)
3:可以像操作非簇類型的數(shù)據(jù)庫那樣,操作mysqld節(jié)點(diǎn)
4:每次修改config.ini文件,重啟ndb_mgmd時(shí),需要刪除mysql-cluster文件下的ndb_1_config.bin.1文件,
因?yàn)樗J(rèn)調(diào)用此文件 
 
5:NDB 簇不支持自動發(fā)現(xiàn)數(shù)據(jù)庫的功能,這點(diǎn)很重要,一旦在一個(gè)數(shù)據(jù)節(jié)點(diǎn)上創(chuàng)建了世界(world)數(shù)據(jù)庫和它的表,在簇中的每個(gè)SQL節(jié)點(diǎn)上還需要發(fā)出命令 CREATE DATABASE world,后跟FLUSH TABLES。這樣,節(jié)點(diǎn)就能識別數(shù)據(jù)庫并讀取其表定義。(在本版本MySQL Cluster 7.1.5下數(shù)據(jù)庫也會自動同步的)
6:如果在相關(guān)節(jié)點(diǎn)服務(wù)器啟動時(shí),注意查看~/mysql/mysql-cluster目錄內(nèi)的相關(guān)日志文件以獲取錯(cuò)誤信息.
7:在管理節(jié)點(diǎn)的配置文件里各[mysqld],[ndbd]和[ndb_mgmd]配置的選項(xiàng)值順序應(yīng)該如下:
[mysqld]
Id=4
HostName=192.168.208.3
Id在頂端緊跟其后的是HostName,如果順序錯(cuò)了,當(dāng)SQL或數(shù)據(jù)節(jié)點(diǎn)連接管理節(jié)點(diǎn)時(shí),管理節(jié)點(diǎn)無法正確的定位
到其對應(yīng)的節(jié)點(diǎn)配置上.
因?yàn)闊o法定位到對應(yīng)的節(jié)點(diǎn)配置,當(dāng)沒有剩余的[空節(jié)點(diǎn)]時(shí),客戶端節(jié)點(diǎn)啟動時(shí)(./mysqld or ./ndbd)
還會報(bào):
Configuration error: Error : Could not alloc node id at 192.168.0.231 port 1186: No free   www.2cto.com  
node id found for mysqld 
(API).Failed to initialize consumers 
8:[空節(jié)點(diǎn)]是沒有指定HostName選項(xiàng)的節(jié)點(diǎn)配置均為空節(jié)點(diǎn),空節(jié)點(diǎn)可以用來動態(tài)配置一些動態(tài)IP的節(jié)點(diǎn),
一般管理節(jié)點(diǎn)的 配置文件要預(yù)留3個(gè)以上的空節(jié)點(diǎn),因?yàn)閭浞輹r(shí)需要連接一個(gè)節(jié)點(diǎn),如下:
[mysqld]
Id=6
# ps -ef|grep mysql
root     13882     1  0 15:25 pts/5    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/dbs1.pid
mysql    14185 13882  0 15:25 pts/5    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/dbs1.err --pid-file=/usr/local/mysql/data/dbs1.pid --socket=/tmp/mysql.sock --port=3306

看完上述內(nèi)容,你們掌握MySQL 中怎么配置Cluster 7.2.4集群的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI