當系統的規模達到一定程度後,數據庫在系統中慢慢成爲一個瓶頸,因此需要對數據庫進行擴展。數據庫集羣時一種解決數據庫負荷的有效手段,本篇主要是描述了數據庫集羣如何搭建和配置的過程。
一、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 [email protected]:/usr/local
scp /home/mysql-cluster/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz [email protected]:/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 .
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)