linux MySQL Cluster MySQL集群
原文:http://lizhenliang.blog.51cto.com/7876557/1290451
官方下载地址
http://dev.mysql.com/downloads/cluster/
Linux最新版本7.3.2
文件 | 大小 | md5 |
---|---|---|
mysqlcluster-7.3.2-linux-x32.tar.gz | 431.0MB | 03093541b6416fc93935750d614d875b |
mysqlcluster-7.3.2-linux-x64.tar.gz | 441.8MB | 330c71a87fbf8f0468ec9c5e0ad6e794 |
Window最新版本7.3.2
文件 | 大小 | md5 |
---|---|---|
mysqlcluster-7.3.2-windows-x32.msi | 100.2MB | 9d25735d7e8af1a2e805f9a1fecc3a1f |
mysqlcluster-7.3.2-windows-x64.msi | 95.5MB | 6fe30e2045f074f471761cb17f0c3d1c |
基本概念:
“NDB” 是一种“内存中”的存储引擎,也是事务型存储引擎,具备ACID属性。
管理(MGM)节点:负责管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。
数据节点:用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。数据节点是用命令“ndbd”启动的。
SQL节点:用来访问 Cluster数据的节点。也就是Mysql服务,可以使用service mysqld start启动。
管理服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。 Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster日志。
集群配置概述:
安装版本:mysql cluster 7.3.2
操作系统 :centos6.3(X64)
软件名称 :mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (通用版)
管理节点IP:192.168.0.202
数据节点-SQL节点IP:192.168.0.203
数据节点-SQL节点IP:192.168.0.204
安装依赖包:yum install -y glibc perl libaio-devel
x32位系统要安装兼容库组:yum groupinstall “Compatibility libraries”
一、管理节点安装配置
1、安装mysql-cluster
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql-cluster
chown -R root.mysql /usr/local/mysql/
chown -R mysql.mysql /usr/local/mysql/data/
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql & #初始化数据库
cp -rf /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/ #复制ndb节点管理命令到本地,方便使用
2、修改mysql主配置文件
vi /etc/my.cnf
[MYSQLD]
user = mysql
socket = /tmp/mysql.sock
basedir = /usr/local/mysql #安装目录
datadir = /usr/local/mysql/data #数据库存放目录
character-set-server=UTF8
ndbcluster #运行NDB存储引擎
ndb-connectstring=192.168.0.202
lower_case_table_names=1 #表名是否区分大小写1为不区分,不然linux下表名是区分大小写的
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.202 #Mysql Cluster管理节点IP
3、创建mysql集群配置文件
mkdir /var/lib/mysql-cluster
vi /var/lib/mysql-cluster/config.ini
[ndbd default]
NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4
DataMemory=256M #分配的数据内存大小,根据本机服务器内存适量来分配
IndexMemory=256M #设定用于存放索引(非主键)数据的内存段大小
#一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,两者任何一个达到限制数量后,都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。
[ndb_mgmd]
nodeid=1
hostname=192.168.0.202
datadir=/var/lib/mysql-cluster/
[ndbd]
nodeid=2
hostname=192.168.0.203
datadir=/usr/local/mysql/data
[ndbd]
nodeid=3
hostname=192.168.0.204
datadir=/usr/local/mysql/data
[mysqld]
nodeid=4
hostname=192.168.0.203
[mysqld]
nodeid=5
hostname=192.168.0.204
保存退出!
chown mysql.mysql /var/lib/mysql-cluster/config.ini
二、两台数据节点和SQL节点配置相同
1、安装mysql-cluster
tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
chown -R root.mysql /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql/data
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql & #初始化数据库
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /usr/local/mysql/support-files/medium.cnf /etc/my.cnf
chmod +x/etc/init.d/mysqld
2、修改mysql配置文件
vi /etc/my.cnf
[MYSQLD]
user=mysql
character_set_server=utf8
ndbcluster
ndb-connectstring=192.168.0.202
default-storage-engine=ndbcluster #设置默认是NDB存储引擎
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.202 #mysql cluster 管理节点IP
三、测试(先关闭三台服务器的防火墙(IPTABLES)与 Selinux)
1、启动管理节点
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
netstat -tuplna | grep 1186 #默认连接端口1186,启动成功
tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 1369/ndb_mgmd
#--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。
如果启动出现报错:把config.ini里设置的nodeid都给删除即可!
2、启动两台数据节点和SQL节点
数据节点:/usr/local/mysql/bin/ndbd --initial
SQL节点:bin/mysqld_safe --user=mysql & 或 service mysqld start
3、查看集群状态
ndb_mgm -e show #显示管理节点和数据节点则配置成功
4、创建一个数据库验证是否同步
mysql -u root -p
Mysql>create database test;
Mysql>use test;
Mysql>create table abc (id int) engine=ndbcluster;#指定数据库表的引擎为NDB,否则同步失败
Mysql>Insert into abc ()values (1);
Mysql>select * from abc;
#此时看两个数据是否数据一致,如果一致说明集群已经成功!
注意事项:
1.在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTER TABLE选项更改表的存储引擎。
2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键。
3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql节点追加用户。
四、管理和维护命令
关闭mysql集群:ndb_mgm -e shutdown
重启mysql集群:ndb_mgmd -f /var/lib/mysql-cluster/config.ini
重启数据节点:/usr/local/mysql/bin/ndbd
启动SQL节点:/usr/local/mysql/bin/mysqld_safe --user=mysql & 或 service mysqld restart
查看mysql状态:ndb_mgm -e show
启动顺序:
管理节点 -> 数据节点 -> SQL节点
关闭顺序:
SQL节点 -> 数据节点 -> 管理节点
linux MySQL Cluster MySQL集群的更多相关文章
- MySQL Cluster(MySQL 集群) 初试(转)
作/译者:叶金荣(imysql#imysql.com>),来源:http://imysql.com,欢迎转载. 作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请 ...
- Linux下MySQL/MariaDB Galera集群搭建过程【转】
MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...
- MySQL Cluster(MySQL 集群) 初试
MySQL Cluster 是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及 ...
- 基于Galera Cluster多主结构的Mysql高可用集群
Galera Cluster特点 1.多主架构:真正的多点读写的集群,在任何时候读写数据,都是最新的 2.同步复制:集群不同节点之间数据同步,没有延迟,在数据库挂掉之后,数据不会丢失 3.并发复制:从 ...
- corosync+pacemaker and drbd实现mysql高可用集群
DRBD:Distributed Replicated Block Device 分布式复制块设备,原理图如下 DRBD 有主双架构和双主架构的,当处于主从架构时,这个设备一定只有一个节点是可以读写的 ...
- Mysql 高可用集群PXC
PXC是percona公司的percona xtraDB cluster,简称PXC.它是基于Galera协议的高可用集群方案.可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务高可 ...
- 【MySQL】容器集群支持数据库实践
京东容器数据库系统,管理1800台物理计算节点,生产1W+ 多MySQL Docker容器实例.架构简单可靠,Docker容器计算平台与MySQL集群管理平台解耦处理.为描述方便,京东容器化数据库系统 ...
- Mysql Router 的集群
1. c:\mysql-router, c:\mysql-5.7.23, 这两个目录的bin都要加入path 2. c:\mysql-shell,在bin下,有一个 mysqlsh.exe, 双击,打 ...
- Docker搭建MySQL的PXC集群
原文:Docker搭建MySQL的PXC集群 一.简介 PXC属于一套近乎完美的mysql高可用集群解决方案,相比那些比较传统的基于主从复制模式的集群架构MHA和MM+keepalived,galer ...
- MySQL之PXC集群搭建
一.PXC 介绍 1.1 PXC 简介 PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实 ...
随机推荐
- python 常见的错误类型 和 继承关系
BaseException +-- SystemExit #系统结束 +-- KeyboardInterrupt #键盘中断 ctrl+D +-- GeneratorExit #主动结束 +-- Ex ...
- 对象内存 (扩展 Data Structure Alignment)
对于一个class object来说,我们需要多少内存才能表现出来,大致分为3类,这里在前面文章有内存图 (1)非静态数据成员的综合大小,这也符合了c++对象模型的结构 (2)填充字节,就是我们所说的 ...
- 使用ADO.NET 实体数据模型连接MySql
原文:使用ADO.NET 实体数据模型连接MySql 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a123_z/article/details/8 ...
- unity射线碰撞检测+LayerMask的使用
射线在unity中是个很方便的东西,对对象查找.多用于碰撞检测(如:子弹飞行是否击中目标).角色移动等提供了很大的帮助,在此做个总结与大家分享下 ,若有不足欢迎吐槽 好了,话补多说啦,直接进入主题: ...
- 201621123034 《Java程序设计》第7周学习总结
作业07-Java GUI编程 1. 本周学习总结 1.1 思维导图:Java图形界面总结 1.2 可选:使用常规方法总结其他上课内容. 2.书面作业 1. GUI中的事件处理 1.1 写出事件处理模 ...
- PAT 1050 螺旋矩阵
https://pintia.cn/problem-sets/994805260223102976/problems/994805275146436608 本题要求将给定的 N 个正整数按非递增的顺序 ...
- jQuery选择器示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 堆栈(Stacks)
堆栈(Stacks) 准备工作 安装Docker 1.13及以上版本 安装Docker Compose正如第三部分的准备工作. 安装Docker Machine正如第四部分的准备工作. 阅读第一部分的 ...
- Java基础复习--java.util.Timer定时任务
在java中,Timer类主要用于定时性.周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下. (1)sche ...
- HDU 1867 A + B for you again ----KMP
题意: 给你两个字符串,输出他们合并之后的字符串,合并的时候把A的后缀和B的前缀重叠合(或者把A的前缀和B的后缀重合).要求合并后的串既包含A右包含B, 且使得合并后的字符串尽量短,其次是使得合并后的 ...