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、client)

二、下載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 文件名 root@ip地址:/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、啓動1臺管理節點:

#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

5、關閉管理節點:

#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 cluster@”%” 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、自動關閉數據節點:

3、手動關閉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 --initial

數據節點2

#ndbd --initial

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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章