MySQL cluster 7.2集群部署配置
本文主要介紹在CentOS 6.3系統上搭建MySQL cluster 7.2.10集群的方法。
1. MySQL cluster簡介
MySQL cluster主要有三種類型節點:
Data node,數據節點將保存數據庫,它會自動復制所有的數據節點;
Daemon node,守護節點相當于是SQL數據庫和客戶端之間的接口,它提供從數據節點查詢等操作,類似于"網關";
Management node,管理節點,用以監控和管理整個集群。
2. 部署配置方法
本文介紹使用2臺服務器(100與101)部署最簡單的集群方法:其中100上部署Data node,Daemon node及Management node;101上部署Data node,Daemon node。
(2.1-2.3為所有節點均需執行的步驟,2.4和2.5為相關節點需執行的步驟)
2.1下載MySQL cluster最新版本7.2.10,解壓移動至 /usr/local/mysql目錄下
wget http://mysql.mirror.kangaroot.net/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.10-linux2.6-x86_64.tar.gz
tar -zxv -f mysql-cluster-gpl-7.2.10-linux2.6-x86_64.tar.gz
mv mysql-cluster-gpl-7.2.10-linux2.6-x86_64 /usr/local/mysql
2.2 添加mysql用戶組及用戶,修改相關目錄權限
groupadd mysql
useradd mysql -g mysql
cd /usr/local
chown -R mysql:mysql mysql
2.3 安裝MySQL cluster
cd mysql
scripts/mysql_install_db --user=mysql
2.4 配置管理節點
#創建目錄
mkdir -p /var/lib/mysql-cluster
#修改配置文件
vim /var/lib/mysql-cluster/config.ini
#config.ini內容如下
[ndbd default]
#NoOfReplicas表示數據份數,如果為1,會有數據節點單點故障
NoOfReplicas=2
DataMemory=200M
IndexMemory=30M
[ndb_mgmd]
id=1
hostname=192.168.85.100
datadir=/var/lib/mysql-cluster/
[ndbd]
id=2
hostname=192.168.85.101
datadir=/usr/local/mysql/data
[ndbd]
id=3
hostname=192.168.85.100
datadir=/usr/local/mysql/data
[mysqld]
id=4
hostname=192.168.85.100
[mysqld]
id=5
hostname=192.168.85.101
[mysqld]
id=6
2.5 配置數據節點和守護節點
#拷貝文件,創建相關目錄
cp support-files/mysql.server /etc/init.d/mysqld
mkdir -p /var/mysql/data
mkdir -p /var/mysql/logs
# 修改配置文件
vim /etc/my.cnf
#my.cnf內容如下:
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
port=3307
ndb-connectstring=192.168.85.100
[mysql_cluster]
ndb-connectstring=192.168.85.100
2.6 啟動節點
啟動需要按照如下順序進行:Management Node > Data Node > SQL Node
2.6.1 管理結點啟動
/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
其他操作:
# 查看是否有端口號為1186的監聽端口
netstat -lntpu
# 查看集群狀態
/usr/local/mysql/bin/ndb_mgm -e show
# 管理節點檢驗
/usr/local/mysql/bin/ndb_mgm
# 管理節點關閉
/usr/local/mysql/bin/ndb_mgm -e shutdown
2.6.2 數據節點啟動
# 只是在第一次啟動或在備份/恢復或配置變化后重啟ndbd時,才加–initial參數!
/usr/local/mysql/bin/ndbd --initial
# 正常啟動方式
/usr/local/mysql/bin/ndbd
2.6.3 SQL節點啟動
service mysqld start
# sql 節點關閉
service mysql stop
# 檢驗mysql是否運行
/etc/rc.d/init.d/mysqld status
# 為sql指定密碼
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h 'host' password 'new-password'
# 啟動命令行窗口
/usr/local/mysql/bin/mysql -u root –p
3. 驗證MySQL cluster功能
下面在服務器上A上新建表并插入數據,在服務器B上驗證MySQL cluster是否將數據同步。
3.1 在服務器A上執行如下語句
#進入sql監視器,注意后續的命令均已;或\g結尾
/usr/local/mysql/bin/mysql
#查看數據庫
Show databases;
#使用test庫
Use test;
#查看test庫,顯示為空
Show test;
#創建person表
create table person(id int,name varchar(40),birthday date)ENGINE=ndb;
#插入數據
Insert into person values(1,'Kate',19821212);
#查看表中數據
Select * from test.person;
3.2 在服務器B上執行如下語句
#進入sql監視器
/usr/local/mysql/bin/mysql
#查看表中數據,可以看到數據已經同步
Select * from test.person;
同樣也可在服務器B上執行Insert/Update/Delete等操作,然后在服務器A上驗證數據是否同步。