MySQL集群搭建
在集群中的所有主机上安装提供集群功能的软件包
官网上下载的 mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64.tar.gz
规划了5台服务器,10.10.22.123~10.10.22.127 其中,123、124做数据节点,125做管理节点,126、127做SQL节点。
一、准备工作:
service mysql stop
mhkconfig mysql off
mv /etc/my.cnf /etc/my.cnf.bak
rpm -qa | grep -i mysql 查看之前是由有rpm的依赖项,如果有,删除之
rpm -e --nodeps ...............................(依赖项的包名)
如果/etc/passwd 下没有mysql用户,增加之
useradd -s /sbin/nologin -M mysql
tar -xvzf mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64 /usr/local/mysql
二、配置管理节点(125)
1、管理集群中的所有主机,启动管理进程时加载自己的主配置文件/etc/config.ini(设置集群中各主机的角色,各个主机角色在运行时参数的设置)
[ndbd default] 数据节点公共配置
[ndb_mgmd] 设置管理主机
[ndbd] 指定数据节点
[mysqld] 指定sql节点
vim /etc/config.ini
[ndbd default]
NoOfReplicas=2 #数据节点的份数,与数据节点个数相关
DataMemory=5G #数据占用内存 后期调
IndexMemory=1G
[ndb_mgmd]
NodeId=25 #管理节点的ID
hostname=10.10.22.125
datadir=/var/log/mysql-cluster #指定日志信息存放位置
[ndbd]
NodeId=23 #数据节点的ID
hostname=10.10.22.123
datadir=/mysql_data1
[ndbd]
NodeId=24
hostname=10.10.22.124
datadir=/mysql_data2
[mysqld]
NodeId=26 #sql节点的ID
hostname=10.10.22.126
[mysqld]
NodeId=27 #sql节点ID
hostname=10.10.22.127
2、安装管理节点
cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin
cd /usr/local/bin
chmod +x ndb_mgm*
三、配置数据节点(123和124)
用来存储数据,运行数据进程。
首先建立数据节点的文件夹为:/mysql_data1 /mysql_data2
1、数据节点的配置文件如下:
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/mysql_data1 #存放数据的文件夹
ndb-connectstring=10.10.22.125 #指定管理节点
ndbcluster #指定存储引擎(这里不再是innodb)
socket=/usr/local/mysql/sock/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql_cluster]
ndb-connectstring=10.10.22.125
2、安装创建系统数据库
cd /usr/local/mysql
mkdir sock
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql_data1
3、更改目录属性
chown -R root .
chown -R mysql.mysql /mysql_data1
chown -R mysql.mysql /usr/local/mysql/sock
chgrp -R mysql .
4、配置mysql服务
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
四、配置sql节点(126和127)
运行的是数据库服务(mysqld),供用户访问 和 执行sql语句。
1、vim /etc/my.cnf
[client]
socket=/usr/local/mysql/sock/mysql.sock
[mysqld]
ndbcluster #指定数据库引擎
default-storage-engine=ndbcluster #建表时使用的默认存储引擎
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/sock/mysql.sock
ndb-connectstring=10.10.22.125
[mysql_cluster]
ndb-connectstring=10.10.22.125
2、安装创建系统数据库
cd /usr/local/mysql
mkdir sock
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
3、修改目录权限
chown -R root .
chown -R mysql.mysql /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/sock
chgrp -R mysql .
4、配置mysql服务
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
五、cluster环境启动(注意顺序)
关防火墙、selinux(setenforce 0)
1、启动管理进程
ndb_mgmd -f /etc/config.ini
还可以使用ndb_mgm命令来监听客户端
可用netstat -utnalp | grep 1186 测试进程是否起来了
如下:
tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 19206/ndb_mgmd
tcp 0 0 127.0.0.1:1186 127.0.0.1:57812 ESTABLISHED 19206/ndb_mgmd
tcp 0 0 127.0.0.1:57812 127.0.0.1:1186 ESTABLISHED 19206/ndb_mgmd
(管理节点只能通过kill来停止进程,无法用service停止)
2、启动数据进程
首次启动,则需要添加--initial参数,以便进行NDB节点的初始化工作。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。
/usr/local/mysql/bin/ndbd --initial
或者 /usr/local/mysql/bin/ndbd
3、启动sql节点上的数据库服务
/usr/local/mysql/bin/mysqld_safe --user=mysql &
或者 service /etc/init.d/mysql.server start
最后再:
cp /usr/local/mysql/bin/mysql /usr/bin/
至此,集群搭建完成!
我们可以在管理节点(125)上用ndb_mgm来show查看所有节点状态,如下:
MySQL集群搭建的更多相关文章
- windows+mysql集群搭建-三分钟搞定集群
注:本文来源: 陈晓婵 < windows+mysql集群搭建-三分钟搞定集群 > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...
- 2-20 MySQL集群搭建实现高可用
MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环境的高实用.高冗余版本.Cluster的汉语是"集群"的意思.它采用了NDB Cluster ...
- MySQL集群搭建详解
概述 MySQL Cluster 是MySQL 适合于分布式计算环境的高实用.可拓展.高性能.高冗余版本,其研发设计的初衷就是要满足许多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达 ...
- MySQL集群搭建方案(PXC)
服务器快过期了,清一点库存,把运维这块的知识复习下 为什么要搭MySQL集群 技术层面上,传统的单节点数据库,万一宕机了,就凉凉了.容灾性能差.抗并发能力有限,数据量大的时候查询有瓶颈.学习层面上,作 ...
- Mysql集群搭建(多实例、主从)
1 MySQL多实例 一 .MySQL多实例介绍 1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通 ...
- MySQL集群搭建(6)-双主+keepalived高可用
双主 + keepalived 是一个比较简单的 MySQL 高可用架构,适用于中小 MySQL 集群,今天就说说怎么用 keepalived 做 MySQL 的高可用. 1 概述 1.1 keepa ...
- mysql集群搭建教程-基础篇
计算机一级考试系统要用集群,目标是把集群搭建起来,保证一个库dang了,不会影响程序的运行.于是在孟海滨师哥的带领下开始了我的第一次搭建mysql集群,首先看了一些关于集群的资料,然后根 ...
- Linux MySQL集群搭建之主从复制
前期准备 准备两台Linux,一主,一从,具体Linux安装MySQL操作步骤:点我直达 集群搭建 注意事项 一主可以多从 一从只能一主 关闭主从机器的防火墙策略 chkconfig iptables ...
- Mysql集群搭建-实操
集群安装--准备工作 官网地址 https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux-binary.html 一.环境 ...
随机推荐
- 基于VUE开发项目
前言 最近由于公司需要,需要写一个相对来说比较大型的后台管理系统.为了保证管理系统操作体验较为舒适并且项目后期益于维护,最后决定基于VUE全家桶来开发一个高度组件化的单页SPA应用. 技术选型 vue ...
- Ruby on rails初体验(二)
体验一中添加了一个最基本的支架和一个简单的数据迁移,实现了一个基本的增删改查的功能列表.体验二中要在次功能上继续丰满一下功能.实现如下效果: 在每个公司中都包含有不同的部门,按照体验一中的方法,添加一 ...
- shell脚本 linux脚本
linux:shell 脚本 如果判断当前时间 是不是12点之前 用date命令先取得当前的时间(仅取小时数) : date '+%H' #按24小时制取hour (00..23) 然后与12 ...
- ListView设置某一项item的文本居中
使用ListView和volley写了一个使用网络获取天气的demo ListView中Item的文本模式都是左侧对齐 我这边需要一些标题文本居中对齐 网上也找不到示例,不过找到了getView这个函 ...
- python list删除数据 和复制 列表
复制列表的方法: lst = [1,2,3] lst1 = lst[:] # one way lst2 = list(lst) # another 删除数据的正确方法: num_list = [1, ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序【转】
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html 1. Web API简单说明 近来很多大型的平台都公开了Web API. ...
- 转:GRADLE构建最佳实践
转自: http://www.figotan.org/2016/04/01/gradle-on-android-best-practise/#section-2 随着谷歌对Eclipse的无情抛弃和对 ...
- PropertyGrid—隐藏某些Public属性
1.定义一个继承ControlDesigner 的类 public class MyControlDesigner:System.Windows.Forms.Design.ControlDesigne ...
- BZOJ 1878 SDOI2009 HH的项链 树状数组/莫队算法
题目大意:给定一个序列.求一个区间内有多少个不同的数 正解是树状数组 将全部区间依照左端点排序 然后每次仅仅统计左端点開始的每种颜色的第一个数即可了 用树状数组维护 我写的是莫队算法 莫队明显能搞 m ...
- Iowait的成因、对系统影响及对策
什么是iowait?顾名思义,就是系统因为io导致的进程wait.再深一点讲就是:这时候系统在做io,导致没有进程在干活,cpu在执行idle进程空转,所以说iowait的产生要满足两个条件,一是进程 ...