一、网络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 文件名 [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;