CentOS搭建MySQL-Cluster集群


1、准備

  1)操作系統為CentOS,使用root用戶安裝

  2)下載mysql-cluster-gpl-7.6.13-el7-x86_64.tar.gz,下載地址https://dev.mysql.com/downloads/cluster/7.6.html

  3)准備3台Linux主機

IP地址 作用
172.16.43.142 管理節點
172.16.43.148 數據節點、SQL節點
172.16.43.149 數據節點、SQL節點

    保證所有主機防火牆對1181和3306端口例外,或直接禁用防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service

2、安裝管理節點(Management Node)

  管理節點最好與數據節點不在同一台機器,如果在同一台機器,當這台機器掛了,則整個服務不可用

  1)創建文件/var/lib/mysql-cluster/config.ini

mkdir /var/lib/mysql-cluster
vi /var/lib/mysql-cluster/config.ini

  文件內容為(配置說明見:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-configuration.htmlhttps://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html):

[ndbd default]
NoOfReplicas=2

[ndb_mgmd]
NodeId=1
HostName=172.16.43.151
DataDir=/var/lib/mysql-cluster

[ndbd]
NodeId=11
HostName=172.16.43.153
DataDir=/usr/local/mysql/data
[ndbd]
NodeId=12
HostName=172.16.43.154
DataDir=/usr/local/mysql/data

[mysqld]
NodeId=21
HostName=172.16.43.153
[mysqld]
NodeId=22
HostName=172.16.43.154

  注意:NodeId只能是數字,可以在不同類型節點間空出幾個數字,以備擴展。NoOfReplicas值范圍是1-2。

  2)解壓安裝文件,拷貝需要的程序

  對於單純管理節點,只需要ndb_mgm和ndb_mgmd,其他解壓內容都可以刪除。

tar zxvf mysql-cluster-gpl-7.6.13-el7-x86_64.tar
cd mysql-cluster-gpl-7.6.13-el7-x86_64/
cp bin/ndb_mgm* /usr/local/bin
chmod +x /usr/local/bin/ndb_mgm*

  3)啟動管理節點,並查看集群信息

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --config-cache=FALSE
ndb_mgm

  ndb_mgmd啟動參數介紹:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-programs-ndb-mgmd.html

  因為我們的數據節點和SQL節點都沒安裝,所有狀態都是not connected。

3、安裝SQL節點(SQL Node)

  1)創建mysql用戶和組

groupadd mysql
useradd -g mysql mysql

  2)修改/etc/my.cnf文件

vi /etc/my.cnf

  修改后的內容為:

[mysqld]
ndbcluster
default-storage-engine=ndbcluster
character_set_server=utf8
lower_case_table_names=1
#basedir=/usr/local/mysql #datadir
=/usr/local/mysql/data [mysql_cluster] ndb-connectstring=172.16.43.151
配置說明:
default-storage-engine=ndbcluster設置默認Engine。
lower_case_table_names=1,設置大小寫不敏感。
character_set_server=utf8設置字符集,mysql默認字符集不支持漢字
此處datadir與config.ini中的DataDir是不同的設置,一個針對SQL節點,一個針對數據節點,它們的值可以相同,也可以不同,如果相同,且SQL節點與數據節點在同一台主機,則需保證SQL節點要先初始化,不然會報錯
如果安裝位置不是/usr/local/mysql,則需要basedir參數,不然mysql初始化時有些配置找不到。

  3)創建數據存儲目錄並更改屬性

mkdir /usr/local/mysql/data

cd /usr/local/mysql/
chown -R mysql data
chgrp -R mysql .

  3)解壓安裝文件並初始化

tar -xzvf mysql-cluster-gpl-7.6.13-el7-x86_64.tar.gz
mv mysql-cluster-gpl-7.6.13-el7-x86_64/ /usr/local/mysql
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql

  記住上圖中初始化生成的隨機密碼,丟了我是不曉得在哪可以再找到這個臨時密碼

  4)添加並啟動Linux服務

cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start

4、安裝數據節點

  1)復制ndbd和ndbmtd文件並授權

  對於單純數據節點,只需要ndbd和ndbmtd文件,其他解壓文件均可刪除

cd /usr/local/mysql
cp bin/ndbd /usr/local/bin/ndbd
cp bin/ndbmtd /usr/local/bin/ndbmtd

chmod +x /usr/local/bin/ndb*

  2)修改my.cnf文件(如果數據節點與SQL節點在同一台服務器,且datadir一樣,這一步可省略

[mysqld]
ndbcluster

[mysql_cluster]
ndb-connectstring=172.16.43.142

  3)創建管理節點config.ini中ndbd定義的DataDir目錄(如果數據節點與SQL節點在同一台服務器,且datadir一樣,這一步可省略)

mkdir /usr/local/mysql
mkdir /usr/local/mysql/data

  4)啟動數據節點

ndbd

5、驗證安裝

  1)打開管理節點,重新查看各個節點狀態,若出現下圖則表示全部安裝完成

  2)登陸mysql,創建'root'@'%'用戶,每個SQL節點都要創建

# 使用'root'%'localhost'用戶登陸
cd /usr/local/mysql/bin
./mysql -u root -p
set password = password('abc123');

# 創建'root'@'%'
create user 'root'@'%' identified by 'abc123';
grant all on *.* to 'root'@'%' with grant option;

  3)使用數據庫連接工具創建數據庫表,注意表的Engine為ndbcluster(也可以在my.cnf中設置默認引擎),這樣2個SQL節點都可以看到這張表和表中的數據了。

 

 

出現的問題:

1、啟動ndb_mgmd時報,Could not create directory '/usr/local/mysql/mysql-cluster'. Either create it manually or specify a different directory with --configdir=<path>

  解決方式一:增加--config-cache=FALSE

  解決方式二:配置--configdir參數為已存在的目錄

  解決方式三:創建默認的/usr/local/mysql/mysql-cluster目錄

2、mysqld(API) not connected(如下圖),檢測防火牆是否打開了。

其他:

  官網安裝介紹:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux-binary.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM