mysql cluster

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 文件名 [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、启动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 [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、自动关闭数据节点:

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;

以上是关于mysql cluster的主要内容,如果未能解决你的问题,请参考以下文章

MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

部分代码片段

Android Google Maps in Fragment Clustering Bug

linux中怎么查看mysql数据库版本

mysql-cluster 安装配置

Data Cluster真机环境下MySQL数据库集群搭建