ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql cluster

2019-06-05 14:56:05  阅读:288  来源: 互联网

标签:ndb cluster mysqld mysql var 节点


一、网络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;

标签:ndb,cluster,mysqld,mysql,var,节点
来源: https://blog.51cto.com/hzcto/2405315

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有