mysql三台机群集_MySQL Cluster 3台机器搭建集群环境
最后还是通过三台机器实现了linux下的mysql集群,这边首先要感谢众多网络上提供帮助教程,虽然有些没有经过实践无法真正达到效果,但是这次给MGM项目的这个开头还是不错。
书归正传,这边用的是vmware workstation来实现的,先装三台linux centos的服务器,最好参考百度知道里面的安装普通database的服务器方法,当中自己来实现交换分区和boot分区还有主分区的划分,这样更好的学习linux的命令和一些常用的操作。接下来和网上的做法差不多,这边关键是my.cnf的配置方法,最后我才发觉这个是我的问题,而且权限表的配置也很重要chown最好对mysql组下的mysql对这个安装路径(/usr/local/mysql/)路径的所有权限进行赋值。
操作系统:
Centos6.0 release 64位
软件包:
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64.tar.gz
数据库管理节点: 10.10.10.201
数据库数据节点: 10.10.10.202,10.10.10.203
数据库sql节点: 10.10.10.202,10.10.10.203
我这里数据节点和sql节点用相同的2台机器承担.
1.管理节点的安装
#groupadd mysql
#useradd mysql -g mysql
#mv
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64.tar.gz /usr/local/
#cd /usr/local/
#tar zxvf
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64.tar.gz
#rm -f
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64.tar.gz
#mv
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64mysql
#chown -R mysql:mysql mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
2.管理节点的配置
#mkdir /var/lib/mysql-cluster
#cd /var/lib/mysql-cluster
#vi config.ini
//这里需要手动添加如下内容
[ndbd default] NoOfReplicas=2 DataMemory=80M IndexMemory=18M
//这里有很多参数,大家可以自己找下相关资料
[ndb_mgmd] Id=1 Hostname=10.10.10.201 //管理节点IP datadir=/usr/local/mysql/logs
[ndbd] Id=2 Hostname=10.10.10.202 //数据节点IP datadir=/usr/local/mysql/data/
//数据节点的数据目录,这里要与数据节点的配置文件my.cnf(其实这边要但是my。cnf里面不用指定也行)
的数据指定相同
[ndbd] Id=3 Hostname=10.10.10.203 //数据节点IP datadir=/usr/local/mysql/data/
[MYSQLD] [MYSQLD]
3.安装和配置数据节点
这里2台机器数据节点安装是相同的.
#groupadd mysql
#useradd mysql -g mysql
#mv
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64.tar.gz /usr/local/
#cd /usr/local/
#tar zxvf
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64.tar.gz
#rm -f
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64.tar.gz
#mv
mysql-cluster-advanced-7.4.6-linux-glibc2.5-x86_64 mysql
#chown -R mysql:mysql mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
#cp support-files/my-medium.cnf /etc/my.cnf
#cp support-files/mysql.server /etc/init.d/mysqld
#vi /etc/my.cnf
//这里需要手动添加如下的内容
[client]
port =3307
[mysqld]
port = 3307
ndbcluster
ndb-connectstring=10.10.10.201
bind-address = 10.10.10.202
[mysql_cluster]
ndb-connectstring=10.10.10.201
这边特别要说的额是设置成3307是必须的,我尝试了很多方法,在ndbd开启后3306就被占用了,
可以使用
netstat -anp | grep "3306" 来找到pid,用kill pid号反而会导致ndbd的集群出问题,所以这里只能指定binding-address和port
4.启动相关服务
在管理节点启动相关服务:
#/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
#netstat -lntpu
tcp 0 0 0.0.0.0:1186 0.0.0.0:*
LISTEN 22907/ndb_mgmd
看到1186端口开放了说明启动是正常的.
在数据节点启动相关服务:
#/usr/local/mysql/bin/ndbd --initial
#netstat -lntpu
tcp 0 0 10.10.1.65:32975 0.0.0.0:* LISTEN 1901/ndbd
tcp 0 0 10.10.1.65:32976 0.0.0.0:* LISTEN 1901/ndbd
tcp 0 0 10.10.1.65:32977 0.0.0.0:* LISTEN 1901/ndbd
#service mysqld start
#netstat -lntpu
tcp 0 0 :::3306 :::* LISTEN 2258/mysqld
可以看到相关的ndbd服务以及mysql已经启动ok了.
5.功能测试
到管理节点查看下相关服务状态
# ndb_mgm
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @10.10.1.65 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
id=3 @10.10.1.58 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.10.1.151 (mysql-5.1.37 ndb-7.0.8)
[mysqld(API)] 2 node(s)
id=4 @10.10.1.65 (mysql-5.1.37 ndb-7.0.8)
id=5 @10.10.1.58 (mysql-5.1.37 ndb-7.0.8)
可以看到这里的数据节点、管理节点、sql节点都是正常的.
现在我们在其中一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数据是否同步
# /usr/local/mysql/bin/mysql -u root -p
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ndb_2_fs |
| test |
+--------------------+
mysql> create database aa;
mysql> use aa
mysql> CREATE TABLE ctest2 (i INT) ENGINE=NDB;
//这里必须指定数据库表的引擎为NDB,否则同
步失败
mysql> INSERT INTO ctest2 () VALUES (1);
mysql> SELECT * FROM ctest2;
+------+
| i |
+------+
| 1 |
+------+
现在到另外一个数据节点查看下aa数据库是否同步过来了.
#/usr/local/mysql/bin/mysql -u root -p
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| aa |
| bb |
| mysql |
| ndb_3_fs |
| test |
+--------------------+
mysql> use aa
mysql> select * from ctest2;
+------+
| i |
+------+
| 1 |
+------+
从上面可以看到数据已经同步了,mysql集群环境已经搭建完成.
这边同样要感谢下面页面的提供帮助:
http://blog.chinaunix.net/uid-23412974-id-2425362.html
http://wenku.baidu.com/link?url=BweBSV3m0ut73gnmRWj5M3w88YTanyxi_K7tvkqpWMdrfaf54xSdVfPolj0HbhdH9hmf85UO_OjXEuWsYlIBRgND0-WgZ9RW1qBE1weoLOq
让我知道不光是chrown来设置权限表来解决问题,还需要绑定其他端口和ip,还有重要问题还需要跑到/usr/local/mysql/data找错误日志来排查。
mysql三台机群集_MySQL Cluster 3台机器搭建集群环境相关推荐
- zookeeper伪集群(在一台机器上集群)
2019独角兽企业重金招聘Python工程师标准>>> 创建一下的目录结构zookeeper-3.4.10是你下载的zookeeper的解压包 /zookeeper_cluster- ...
- 文件服务器高可用群集,fastDFS文件服务器(三):集群和高可用环境篇
解决两个组轮询存储文件问题 上篇文章中我们搭建了单机版的fastDFS,其中storage有两个group,分别为head和other,我们在测试的时候发现文件每次上传都会到head目录下,如果你希望 ...
- mysql cluster mysql 节点无法关闭_Mysql Cluster 非root用户启动ndbd节点报错
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.配置文件,如下: [root@cent178 ~]# ls -lart /etc/my.cnf -rw-rw-r-- 1 mysql mysql 30 ...
- 两台服务器安装redis集群_Redis Cluster搭建高可用Redis服务器集群
一.Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节 ...
- mysql数据库集群 主主复制 原理_MySql搭建集群 之 主主复制(双主代从)MYSQL数据库...
作者:VEPHP 时间 2017-09-27 <MySql搭建集群 之 主主复制(双主代从)MYSQL数据库>要点: 本文介绍了MySql搭建集群 之 主主复制(双主代从)MYSQL数 ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十二)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。...
Centos7出现异常:Failed to start LSB: Bring up/down networking. 按照<Kafka:ZK+Kafka+Spark Streaming集群环境搭 ...
- 华为python673集_实现Redis Cluster并实现Python链接集群
一.Redis Cluster简单介绍 Redis集群搭建的方式有多种,例如使用Redis主从复制+Sentinel高可用集群.zookeeper等,但从Redis 3.0之后版本支持Redis-cl ...
- Redis进阶-5.x 单节点 及Redis Cluster 3主3从集群部署
文章目录 Redis 下载地址 Redis 5.x 单节点 编译安装 Redis 启停 Redis Cluster 4.x VS Redis Cluster 5.x 演进之路 ( Master/Sla ...
- 两台服务器安装redis集群_redis 集群搭建,小白也能搭三主三从的集群环境
redis集群简介: Redis集群是一个程序集,它提供在多个 Redis节点之间共享数据. 一个 Redis集群不支持同时处理多个键的 Redis命令,因为这要求将数据移动到多个节点之间,这会降低 ...
最新文章
- phalcon安装-遇坑php-config is not installed 解决方法
- nginx 限流,以及nginx直接返回json格式数据
- Python-OpenCV 处理视频(一)(二): 输入输出 视频处理
- codeforces 711B - Chris and Magic Square(矩阵0位置填数)
- android 简单的音乐播放器实现播放模式的切换
- SAP S/4HANA product search implementation debug in backend
- 懒惰的JSF Primefaces数据表分页–第2部分
- LNMP下Redis介绍以及安装(Linux)
- vs中c语言图形显示,VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)...
- 机器人产业进入“快车道”, 细分领域深耕细作成趋势。...
- 长江大学计算机网络期末考试试题及答案,长江大学计算机基础考试试题
- blender初学实用快捷键
- 《超越宝典汽配汽修管理系统——“美容管理”模块》项目研发阶段性总结
- 弧长正反算matlab,利用Matlab计算子午线弧长和平行圈弧长
- QT5的软键盘输入法实现
- 组归一化(Group Normalization)的解释
- 20190707 - FE:使用 Charles 在 IphoneX 上抓包
- 自定义桌面图标!制作属于自己的个性化桌面吧(=^x^=)
- 金士顿dtse9g2 PS2251-07 海力士(Hynix) flash not support
- 推荐一款视频音频剪辑软件,可免费试用
热门文章
- NeurIPS 2021 | 港中文周博磊组:基于实例判别的数据高效生成模型
- 成为年薪50W+的NLP工程师,需要哪些技能?
- 预训练图像处理Transformer:刷榜多项底层视觉任务
- 我们做了一个医疗版MNIST数据集,发现常见AutoML算法没那么好用
- AAAI 2019 Oral | 让TA说你想听的—基于音/视频特征解离的讲述者人脸生成
- HihoCode1721删除一个字符之后是回文字符串
- 简单计算器 逆波兰表达式
- linux arp 老化时间,Linux实现的ARP缓存老化时间原理解析
- python内置序列类型_Python序列内置类型之元组类型详解
- 深入浅出在NIO技术中,如何理解直接缓冲区要比非直接缓冲区效率高?