1. 程式人生 > >mysql cluster搭建

mysql cluster搭建

mysql cluster

一、網絡top圖:

一共要5臺機器:管理節點、數據節點1、數據節點2、sql節點1、sql節點2

mysql 管理結點:63.cn IP192.168.146.4(安裝serverclient)

mysql 數據結點:64.cn IP192.168.146.7 (安裝serverclient)

mysql 數據結點:65.cn IP192.168.146.3 (安裝serverclient)

msyql SQL節點:66.cn IP192.168.146.44 (安裝serverclient)

msyql SQL節點:67.cn IP192.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 文件名 [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搭建