mysql cluster搭建
一、網絡top圖:
一共要5臺機器:管理節點、數據節點1、數據節點2、sql節點1、sql節點2
mysql 管理結點:63.cn IP:192.168.146.4(安裝server、client)
mysql 數據結點:64.cn IP:192.168.146.7 (安裝server、client)
mysql 數據結點:65.cn IP:192.168.146.3 (安裝server、client)
msyql SQL節點:66.cn IP:192.168.146.44 (安裝server、client)
msyql SQL節點:67.cn IP:192.168.146.5(安裝server
二、下載mysql cluster:
Mysql cluster的下載地址:https://dev.mysql.com/downloads/cluster/
三、5臺機器清理環境:
#yum remove mysql -y
#rpm -qa | grep mysql
如果找到mysql-libs-5.1.71-1.el6.x86_64 ,請按照如下的命令格式予以刪除:
#rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
最後刪掉下列文件:
#rm -rf /usr/local/mysql
#rm -rf /var/lib/mysql/
#rm -rf /etc/my.cnf
#rm -rf /etc/init.d/mysqld
#rm -rf /etc/profile
#rm -rf /data
四、5臺機器安裝mysql cluster :
將MySQL-Cluster-gpl-7.3.4-1.el6.x86_64.rpm-bundle.tar上傳到root下,然後通過scp命令(scp -r 文件名 [email protected]:/root)同步到其他4臺機器上,並且執行如下命令解壓:
#tar -xvf MySQL-Cluster-gpl-7.3.4-1.el6.x86_64.rpm-bundle.tar
得到如下文件清單:
MySQL-Cluster-client-gpl-7.3.4-1.el6.x86_64.rpm
MySQL-Cluster-devel-gpl-7.3.4-1.el6.x86_64.rpm
MySQL-Cluster-embedded-gpl-7.3.4-1.el6.x86_64.rpm
MySQL-Cluster-server-gpl-7.3.4-1.el6.x86_64.rpm
MySQL-Cluster-shared-compat-gpl-7.3.4-1.el6.x86_64.rpm
MySQL-Cluster-shared-gpl-7.3.4-1.el6.x86_64.rpm
MySQL-Cluster-test-gpl-7.3.4-1.el6.x86_64.rpm
然後到每臺機器上,分別執行server和client的yum install安裝:
#yum install MySQL-Cluster-server-gpl-7.3.7-1.el6.x86_64.rpm -y
#rpm -ivh MySQL-Cluster-client-gpl-7.3.7-1.el6.x86_64.rpm
五、5臺機器上分別創建mysql用戶(這步可以省略,因為上一步會自動創建mysql用戶):
#useradd -M -s /sbin/nologin mysql
六、創建文件夾和給文件夾授權:
管理節點創建:
#mkdir /usr/local/mysql
#mkdir /usr/local/mysql-cluster
#mkdir /var/lib/mysql-cluster
#mkdir /var/run/mysqld/ 進程pid文件目錄
數據節點:
#mkdir /var/lib/mysql
#mkdir /var/run/mysqld
SQL節點:
#mkdir /var/lib/mysql
#mkdir /var/run/mysqld 進程pid文件目錄
管理節點授權
#chown mysql:mysql -R /usr/local/mysql-cluster
#chown mysql:mysql -R /var/lib/mysql-cluster
#chown mysql:mysql -R /var/run/mysqld
數據節點授權
#chown mysql:mysql -R /var/lib/mysql
#chown mysql:mysql -R /var/run/mysqld
SQL節點授權
#chown mysql:mysql -R /var/lib/mysql
#chown mysql:mysql -R /var/run/mysqld
七、配置5個節點:
1、配置管理節點:
#vim /var/lib/mysql-cluster/config.ini
[ndbd default]
NoOfReplicas=2 #數據寫入數量。2表示兩份
DataMemory=200M #配置數據存儲可使用的內存
IndexMemory=100M #索引給100M
# SQL node options: #關於管理結點
[ndb_mgmd]
id=1
datadir=/var/lib/mysql-cluster #管理結點的日誌
HostName=192.168.146.4 #管理結點的IP地址。本機IP
# SQL node options: #關於數據結點
[ndbd]
HostName=192.168.146.7
DataDir=/var/lib/mysql #mysql數據存儲路徑
id=2
[ndbd]
HostName=192.168.146.3
DataDir=/var/lib/mysql #mysql數據存儲路徑
id=3
# SQL node options: #關於SQL結點
[mysqld]
HostName=192.168.146.44
id=4
[mysqld]
HostName=192.168.146.5
id=5
2、配置2臺數據節點(通過scp命令同步到另一臺數據節點):
#vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql #mysql數據存儲路徑
ndbcluster #啟動ndb引擎
ndb-connectstring=192.168.146.4 # 管理節點IP地址
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql_cluster]
ndb-connectstring=192.168.146.4 #管理節點IP地址
3、配置sql節點服務器:
#vim /etc/my.cnf
[mysqld]
ndbcluster #啟動ndb引擎
ndb-connectstring=192.168.146.4 # 管理節點IP地址
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql_cluster]
ndb-connectstring=192.168.146.4 #管理節點IP地址
說明:數據節點和SQL結點配置文件區別 ,就多一行
數據結點有:datadir=/var/lib/mysql #mysql數據存儲路徑。
SQL節點上沒有。
八、MySQL Cluster啟動:
1、啟動2臺管理節點:
#ndb_mgmd -f /var/lib/mysql-cluster/config.ini
# netstat -antup | grep 1186
tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 7057/ndb_mgmd
tcp 0 0 127.0.0.1:1186 127.0.0.1:60324 ESTABLISHED 7057/ndb_mgmd
tcp 0 0 127.0.0.1:60324 127.0.0.1:1186 ESTABLISHED 7057/ndb_mgmd
2、啟動2臺數據節點:
#ndbd --initial #後期啟動只需 #ndbd
3、啟動2臺sql節點:
#mysqld_safe --defaults-file=/etc/my.cnf &
4、管理節點查看狀態:
#ndb_mgm
#ndb_mgm> show
#ndb_mgm> shutdown
九、同步數據庫:
1、修改2臺mysql節點的mysql密碼:
# cat /root/.mysql_secret #這步可以不執行
#mysqld_safe --skip-grant-tables &
#mysql_secure installation
這裏直接回車幾次,就可以輸入新密碼了。
#mysqld_safe --defaults-file=/etc/my.cnf &
2、測試:
#mysql -uroot -p123456 #測試登陸
#mysql> show databases;
#mysql>flush privileges;
#mysql>grant all privileges on *.* to [email protected]%” identified by “123456” #授權
#mysql>flush privileges;
3、模擬數據同步:
#mysql -ucluster -p123456 -h 192.168.146.44
#mysql> create database db;
#mysql> use db;
#mysql> create table test(id int,name char) engine=ndb charset=utf8;
#mysql> insert into test values(1000);
#mysql> select * from test;
登陸另一臺sql節點查看
#mysql -ucluster -p123456 -h 192.168.146.5
#mysql> use db;
#mysql> select * from test;
到一個sql節點上停掉一個sql節點測試:
# mysqladmin shutdown -ucluster -p123456
回到管理節點查看狀態:
#ndb_mgm> show 查看狀態
十、重啟mysql cluster:
關閉mysql集群順序:
關閉管理節點服務-》 關閉管理節點時,數據結點服務自動關閉 –》 需要手動關閉SQL結點服務
1、關閉管理節點:
# ndb_mgm
#ndb_mgm> shutdown;
#ps -axu | grep ndbd #查看不到,說明數據節點已經被關
2、手動關閉2臺SQL結點:
# mysqladmin shutdown -ucluster -p123456
# mysqladmin shutdown -ucluster -p123456
或者:方法二 kill掉
# ps -axu | grep mysql
# kill -9 7617
# kill -9 7743
# ps -axu | grep mysql
3、啟動msyql集群:
啟動管理節點服務-》 關閉管理節點時,數據結點服務自動關閉 –》 需要手動關閉SQL結點服務
管理節點
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
數據節點1
#ndbd
數據節點2
#ndbd
mysql節點1
# mysqld_safe --defaults-file=/etc/my.cnf &
mysql節點2
# mysqld_safe --defaults-file=/etc/my.cnf &
4、查看mysql 集群狀態:
管理節點
# ndb_mgm
-- NDB Cluster -- Management Client --
#ndb_mgm> show;
本文出自 “HUAZAi-CTO” 博客,轉載請與作者聯系!
mysql cluster搭建