mysqlcluster數據庫集群的搭建和配置
當系統的規模達到一定程度后,數據庫在系統中慢慢成為一個瓶頸,因此需要對數據庫進行擴展。數據庫集群時一種解決數據庫負荷的有效手段,本篇主要是描述了數據庫集群如何搭建和配置的過程。
一、mysql集群的規劃
mysql集群由管理節點、數據節點、mysql節點組成。一般情況下數據節點和mysql可以放在統一服務器,管理節點在另外一個服務器。本例中采用三臺服務器,一臺作為管理節點,另外兩臺同時作為數據和mysql節點,可以用下圖表示:

要搭建mysql的集群,首先就需要檢查原系統是否有安裝mysql,將原系統的mysql卸載后再安裝mysql集群版,本文中的各個節點的系統都為centos 6.5。
二、mysql 的卸載
卸載的主要步驟如下:
1、收集系統的mysql信息
2、關閉mysql相關服務
3、卸載mysql軟件
4、刪除mysql殘留的文件
2.1收集系統的mysql信息
[root@mysql-2 ~]# rpm? -qa | grep? -i? mysql
MySQL-client-5.6.33-1.linux_glibc2.5.x86_64
php-mysqlnd-5.6.27-1.el6.remi.x86_64
MySQL-shared-5.6.33-1.linux_glibc2.5.x86_64
MySQL-devel-5.6.33-1.linux_glibc2.5.x86_64
MySQL-server-5.6.33-1.linux_glibc2.5.x86_64
MySQL-shared-compat-5.6.33-1.linux_glibc2.5.x86_64
[root@mysql-2 ~]#
[root@mysql-2 ~]# whereis? mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
[root@mysql-2 ~]#
[root@mysql-2 ~]#? chkconfig --list | grep -i mysql
mysql?????????? 0:off?? 1:off?? 2:on??? 3:on??? 4:on??? 5:on??? 6:off
[root@mysql-2 ~]#
[root@mysql-2 ~]#
2.2關閉MySQL服務
[root@mysql-2 ~]# service mysql stop
Shutting down MySQL…[ OK ]

2.3卸載mysql
- rpm –e --nodeps MySQL-devel-5.6.23-1.linux_glibc2.5
2.4刪除文件
首先查找系統的mysql文件和目錄,然后刪除這些文件和目錄
find / -name mysql
三、安裝管理節點
管理節點使用的服務器為192.168.136.215.
3.1、下載介質
安裝文件的獲取有兩個途徑,一個是從mysql網站上獲取,https://dev.mysql.com/downloads/cluster/7.5.html#downloads
如下圖所示:

第二個途徑是從鏡像獲取:
http://mirrors.sohu.com/mysql/MySQL-Cluster-7.5/
從這個url中找到符合自己操作系統的集群安裝文件mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz,下載后,拷貝安裝文件到215服務器上,目錄可以自己指定,我使用的目錄是 /home/mysql-cluster

解壓后,在本地有一個目錄 mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64,進入目錄后,結構如下圖所示:

3.2創建用戶組和用戶
使用如下指令創建用戶和用戶組:
groupadd? mysql
useradd? mysql? -g? mysql
3.3部署安裝文件
使用如下命令將解壓后的目錄重命名:
mv mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64 /usr/local/mysql-cluster
進入到/uar/local/mysql-cluster目錄,將管理程序拷貝到 bin目錄:
cp bin/ndb_mgm* /usr/local/bin
修改權限: chmod +x ndb_mgm*

3.4初始化管理節點:
初始化管理節點,需執行如下命令: /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

在/usr/local/bin目錄下執行 ndb_mgm命令后,在命令行窗口執行 show

至此管理節點安裝完成。
四、安裝數據和mysql節點
安裝數據和mysql節點,使用的軟件和管理節點一致,并且用戶和用戶組也和前面一致。數據和mysql節點使用的服務器分別為 192.168.136.216和192.168.136.217
4.1、創建用戶組和用戶
groupadd? mysql
useradd? mysql? -g? mysql
建立文件夾并賦予權限
mkdir? /var/lib/mysql-cluster
chown? root:mysql? /var/lib/mysql-cluster
4.2、部署軟件
將上一章節的軟件,傳到 /usr/local下,可以使用scp命令:
scp /home/mysql-cluster/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz root@192.168.136.216:/usr/local
scp /home/mysql-cluster/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz root@192.168.136.217:/usr/local

進入 /usr/local目錄 將上傳到216和217主機的壓縮包解壓縮:
tar? -vxf?? mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz
解壓縮后會產生mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64目錄,將其重命名:
mv? mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64? mysql
4.3、初始化mysql
在/usr/local/mysql 目錄下,執行 ./bin/mysqld --initialize 命令,會進行mysql的初始化操作

初始化命令的最后一行是密碼,需要記住這個密碼

4.4、修改目錄權限
使用如下指令修改目錄權限:
chown -R root:mysql? .
- 1
4.5、拷貝mysql啟動命令和加入到系統服務
[root@mysql-2 mysql]# cp? support-files/mysql.server? /etc/rc.d/init.d/
[root@mysql-2 mysql]#
[root@mysql-2 mysql]# chmod +x? /etc/rc.d/init.d/mysql.server
[root@mysql-2 mysql]#
[root@mysql-2 mysql]# chkconfig? --add? mysql.server

4.6、配置數據節點:
修改mysql的配置文件:vim /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.136.215
[mysql_cluster]
ndb-connectstring=192.168.136.215
4.7、初始化數據節點:
[root@mysql-2 mysql]# /usr/local/mysql/bin/ndbd –initial

檢查進程

4.8啟動mysql
/etc/init.d/mysql.server start

注意 data目錄的用戶和用戶組都是mysql

否則啟動會報告如下異常

啟動完成后,切換到 215上查看,可以看到全部節點都啟動

4.9添加系統環境變量
把mysql/bin目錄添加到環境變量
echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile && source /etc/profile
四、驗證
4.1、使用navicat工具創建mysql連接

4.2、單節點上創建數據庫
在其中一個節點(mysql節點上)創建數據庫educloud

刷新一下navicat工具中的數據庫連接

可以看到集群里數據庫的信息都更新了
4.3、創建表
在任意一個節點上的數據庫educloud里面創建表:
注意建表的引擎需要用ENGINE=NDBCLUSTER;

查詢另外一個節點可以看到也同樣生成了表

五、啟動和關閉
啟動mysql集群。啟動順序為:管理節點→數據節點→SQL節點。
5.1、管理節點啟停:
啟動命令:
/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
關閉命令:
/usr/local/bin/ndb_mgm -e shutdown
注:本例中管理節點為192.168.136.215
5.2、數據和mysql節點上啟動
啟動ndbd和MySQL(關閉命令:/etc/init.d/mysql.server stop)
數據節點啟動:/usr/local/mysql/bin/ndbd
Mysql啟動:/etc/init.d/mysql.server start
Mysql啟動關閉: /etc/init.d/mysql.server stop
注:本例中管理節點為192.168.136.216, 192.168.136.217
5.3、管理節點查看狀態
執行指令:/usr/local/bin/ndb_mgm 后進入交互界面:
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]???? 2 node(s)
id=3??? @192.168.136.216? (mysql-5.7.24 ndb-7.5.12, Nodegroup: 0, *)
id=5??? @192.168.136.217? (mysql-5.7.24 ndb-7.5.12, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1??? @192.168.136.215? (mysql-5.7.24 ndb-7.5.12)
[mysqld(API)]?? 2 node(s)
id=6??? @192.168.136.216? (mysql-5.7.24 ndb-7.5.12)
id=7??? @192.168.136.217? (mysql-5.7.24 ndb-7.5.12)

浙公網安備 33010602011771號