MySQL集群配

一.下面假设这3台服务的情况: 
Server1: 172.18.3.205 
Server2: 172.18.3.207 
Server3: 172.18.3.208 
Servers1和Server2作为实际配置MySQL集群的服务器。对于作为管理节点的Server3则要求较低,只需对Server3的系统进行很小的调整并且无需安装MySQL,Server3可以使用一台配置较低的计算机并且可以在Server3同时运行其他服务。
====================================



二、在Server1和Server2上安装MySQL 

http://www.mysql.com
上下载mysql-max-4.1.22-pc-linux-gnu-i686.tar.gz
注意:必须是max版本的MySQL,Standard版本不支持集群部署! 

以下步骤需要在Server1和Server2上各做一次 
# cd /usr/local/ 
# groupadd mysql 
# useradd -g mysql mysql 
# tar -zxvf mysql-max-4.1.22-pc-linux-gnu-i686.tar.gz 
# mv mysql-max-4.1.22-pc-linux-gnu-i686
# cd mysql 
# scripts/mysql_install_db --user=mysql 
# chown -R root . 
# chown -R mysql data 
# chgrp -R mysql . 

此时不要启动MySQL!
========================================================


三、安装并配置管理节点服务器(Server3) 
# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz 
# rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz 
# cd mysql-max-4.1.9-pc-linux-gnu-i686 
# mv bin/ndb_mgm /usr/bin/  
# mv bin/ndb_mgmd /usr/bin/ 
#cd /usr/bin
# chmod +x ndb_mg* 


现在开始为这台管理节点服务器建立配置文件: 
# mkdir /var/lib/mysql-cluster 
# cd /var/lib/mysql-cluster 
# vi config.ini 
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=172.18.3.208
# Storage Engines 
[NDBD]
HostName=172.18.3.205
DataDir=/var/lib/mysql-cluster
[NDBD]
HostName=172.18.3.207
DataDir=/var/lib/mysql-cluster
[MYSQLD] 
[MYSQLD]
保存退出后,启动管理节点服务器Server3: 
/usr/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

注释: Cluster管理节点的默认端口是1186,数据节点的默认端口2202。从MySQL 5.0.3开始,该限制已被放宽, Cluster能够根据空闲的端口自动地为数据节点分配端口。如果你的版本低于5.0.22,请注意这个细节。

启动管理节点后应该注意,这只是管理节点服务,并不是管理终端。因而你看不到任何关于启动后的输出信息。 
=============================================================

四、配置集群服务器并启动MySQL 
在Server1和Server2中都需要进行如下改动:

[root@localhost local]# cat /etc/my.cnf 
[mysqld] 
ndbcluster 
ndb-connectstring=172.18.3.208  
[mysql_cluster] 
ndb-connectstring=172.18.3.208 

保存退出后,建立数据目录并启动MySQL
# mkdir /var/lib/mysql-cluster 
# cd /var/lib/mysql-cluster 
# /usr/local/mysql/bin/ndbd --initial 


注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。
如果不是第一次启动,直接运行如下命令即可


=============================================

在 server1 server2 启动mysql
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &



==================================
注: /usr/local/mysql/bin/mysqld_safe &  这样起有问题
[root@localhost ~]# tail -f /usr/local/mysql/data/localhost.localdomain.err
070723 21:49:58  mysqld started
070723 21:50:00  InnoDB: Started; log sequence number 0 43634
070723 21:50:00 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
070723 21:50:00  mysqld ended
============================================

测试:在server1上执行
# /usr/local/mysql/bin/mysql -u root -p 
> use test; 
> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER; 
> INSERT INTO ctest () VALUES (1); 
> SELECT * FROM ctest; 
在server2查询有该记录.证明配置成功




在管理节点上查看
[root@localhost bin]# /usr/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @172.18.3.205  (Version: 4.1.22, Nodegroup: 0, Master)
id=3    @172.18.3.207  (Version: 4.1.22, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1    @172.18.3.208  (Version: 4.1.22)
[mysqld(API)]   2 node(s)
id=4    @172.18.3.207  (Version: 4.1.22)
id=5    @172.18.3.205  (Version: 4.1.22)
====================================================
五、启动MySQL Cluster
较为合理的启动顺序是,首先启动管理节点服务器,然后启动存储节点服务器,最后才启动SQL节点服务器:
上述配置把存储节点和sql节点放到同台服务器上了。
==================================================

六.

以下配置把存储节点和sql节点分开来配置
172.18.3.208 ----->管理节点
172.18.3.205 ----->存储节点
172.18.3.207 ----->存储节点
172.18.3.209 ----->sql节点
172.18.3.210 ----->sql节点




管理节点 172.18.3.208 
[root@localhost mysql-cluster]# cat /var/lib/mysql-cluster/config.ini 
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=172.18.3.208
# Storage Engines 
[NDBD]
HostName=172.18.3.205
DataDir=/var/lib/mysql-cluster
[NDBD]
HostName=172.18.3.207
DataDir=/var/lib/mysql-cluster
[MYSQLD] 
hostname=172.18.3.209
[MYSQLD] 
hostname=172.18.3.210

启动管理节点 /usr/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

数据节点 172.18.3.205
[root@localhost ~]# cat /etc/my.cnf
[mysqld] 
ndbcluster 
ndb-connectstring=172.18.3.208  
[mysql_cluster] 
ndb-connectstring=172.18.3.208


数据节点 172.18.3.208
[root@localhost test]# cat /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=172.18.3.208
[mysql_cluster]
ndb-connectstring=172.18.3.208
启动数据节点 /usr/local/mysql/bin/ndbd --initial

sql节点 172.18.3.209
[root@localhost data]# cat /etc/my.cnf
[mysqld]
basedir         = /usr/local/mysql/
datadir         = /usr/local/mysql/data
user            = root
port            = 3306
socket          = /tmp/mysql.sock
ndbcluster
ndb-connectstring=172.18.3.208
[MYSQL_CLUSTER]
ndb-connectstring=172.18.3.208

sql节点 172.18.3.210
[root@localhost data]# cat /etc/my.cnf
[mysqld]
basedir         = /usr/local/mysql/
datadir         = /usr/local/mysql/data
user            = root
port            = 3306
socket          = /tmp/mysql.sock
ndbcluster
ndb-connectstring=172.18.3.208
[MYSQL_CLUSTER]
ndb-connectstring=172.18.3.208


启动sql节点  /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &




在管理节点 172.18.3.208  查看信息
[root@localhost mysql-cluster]# /usr/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @172.18.3.205  (Version: 4.1.22, Nodegroup: 0, Master)
id=3    @172.18.3.207  (Version: 4.1.22, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1    @172.18.3.208  (Version: 4.1.22)
[mysqld(API)]   2 node(s)
id=4    @172.18.3.209  (Version: 4.1.22)
id=5    @172.18.3.210  (Version: 4.1.22)


启动先后顺序:管理节点 数据节点 sql节点


在sql节点172.18.3.209插入如下的数据

[root# mysql -uroot test
mysql> create table city(
mysql> id mediumint unsigned not null auto_increment primary key,
mysql> name varchar(20) not null default ''
mysql> ) engine = ndbcluster default charset utf8;
mysql> insert into city values(1, 'city1');
mysql> insert into city values(2, 'city2');
在172.18.3.210上查询
root# mysql -uroot test
mysql> select * from city;
+-----------+
|id | name  |
+-----------+
|1  | city1 |
+-----------+
|2  | city2 |
+-----------+
七、安全关闭
要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:root# /usr/local/mysql/ndb_mgm -e shutdown
运行以下命令关闭SQL节点的mysqld服务:
root# /usr/local/mysql/bin/mysqladmin -uroot shutdown

详细参照
http://imysql.cn/?q=node/96
http://www.yuanma.org/data/2006/0911/article_1501.htm


通过 Wiz 发布


转载于:https://www.cnblogs.com/firmy/archive/2011/12/28/2304264.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

源码免杀处理的技巧与tips

2019独角兽企业重金招聘Python工程师标准>>> 首先,要了解编译中MAP的利用: 第一步设置VC编译环境生成Map文件。在 VC 中,点击菜单“Project -> Settings”选项页(或按下 AltF7),选择 C/C 选项卡,并在…

广东计算机专业软件排名前十大学,2017年全国计算机专业大学排名一览表

2017年全国计算机专业大学排名一览表计算机科学是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的.算法分析、形式化语法等等,到更具体的主题如编程语言、程序设计、软件和硬件等。下面是小编收集的全国计算机专业大学排名一览表&#xff…

C# 通过正则表达式来限制控件输入有效性

,界面上允许用户输入的控件,大多是有一定限定的,比如电话号码,只允许11的数字,比如一些算法参数有取值范围限定,比如只允许[1,255]等,这种情况如果等用户输入运行后再在后台验证数据的有效性&am…

easyui数据请求两个url_jQuery Easyui datagrid连续发送两次请求问题

XXXXXX.datagrid({url: "${pageContext.request.contextPath}/xx/xx/xx,});用上述方式动态加载datagrid的数据时,通过net监听,发现调用了两遍XX方法,目前的解决方案是,将url放到datagrid初始化的时候执行。$(#XXXX).datagrid…

C# Winform编程之Button

参考了这篇文章: http://www.cnblogs.com/qianlifeng/archive/2010/04/13/1710869.html 我的代码: JButton.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.…

电热水器和插座之间的相亲故事

2019独角兽企业重金招聘Python工程师标准>>> 回到武汉,租房,然后发现原来的热水器不出水。让房产公司派师傅过来修理,终究还是放弃治疗了。不久,安装了一个新的电热水器。 我喜出望外,等了两个周&#xff0…

mysql in优化_MySQL 探秘: 1 整体架构

新开坑,计划做一系列专辑。由于 MySQL 源码太庞大,不可能面面俱到,先从丁奇《MySQL 实战 45 讲》[1] 案例开始入手,case by case 来做分享。同时强烈推荐丁奇的课,真的是受益匪浅,感谢感谢~~最新版本己经是…

清华姚班/智班2020级新生来了!中国奥数新晋“一姐”在列,湖南、湖北人数最多...

全世界只有3.14 % 的人关注了爆炸吧知识乾明 金磊 发自 凹非寺量子位 报道 | 公众号 QbitAI清华姚班/智班,又双叒叕纳一批英才。根据教育部公示的保送生拟录取名单的信息,清华大学姚班/智班2020年已拟定录取31名应届生,他们都是来自各省的顶级…

JS动态添加span等标签

今天在程序当中需要动态的往页面中添加span标签,同时需要设置span的文本,本人的JS不好,就从网上找了不少资料,多数是一样的做法,如下大体代码所示: function addTag() {var div document.createElement(&q…

成长 | 《大厂晋升指南》学习总结(下)

【学习总结】| Edison Zhou上一篇总结了面评技巧和学习方法部分,本篇总结做事方法和转向提升部分。温馨提示:文中的贴图均来自极客时间《大厂晋升指南》课程。1做事方法概要关于做事能力,有三条业界达成共识的判断标准,分别是闭环…

小学学校计算机教室使用计划,小学电脑室工作计划

以下是小编整理的2014小学电脑室工作计划、学校工作计划等,更多工作计划范文请登陆出国留学工作计划范文网(www.liuxue86.com/gongzuojihua/xuexiao/)一、指导思想:为了搞好学校信息技术教育教学管理工作,提高信息技术教学水平,以教育部制定的《中小学信息技术课程建…

自动以及手动清除手机垃圾文件

1.自动清除手机垃圾文件。 法1:用蓝牙传送一个大于手机内存的文件到手机内存中,手机会提示储存空间不足,自动清理一些隐藏的垃圾文件。 法2:传一个比较大的文件(我的机子是15【已用】117【未用】132M)&…

ubuntu流量监控_linux - 实时流量监控

前言有时候发现Linux主机的流量突然大涨,想要查看对应的IP是哪个,这时候就会用到iftop这个工具。iftop是类似于top的实时流量监控工具。可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。安装Debian/Ubuntu/Deepinsudo apt updat…

在SD/MMC卡中可读写的FAT文件系统

2019独角兽企业重金招聘Python工程师标准>>> FAT文件系统 关于eLua中FAT文件系统的实现是使用了来自Elm Chan的一个很好的FatFS文件包。它可以在读写模式中处理FAT12,FAT16和FAT32文件系统。而且它打包了很多功能通过封装的形式。跟ROM文件系统一样它也与C库集成在一…

iphone4 短信截获

所谓的短信截获,可以被法度提前接管到,经过过滤以及响应的处理惩罚,然后发送到手机的收件箱中。 ios3上的短信截获经由过程可以经由过程一些私有的api即可完成,网上的教程也较多,这里不在反复。 前段时候在调研的ios4上…

hql取满足条件最新一条记录_MySql 之一条查询sql的执行过程

每当我把一条查询sql语句写完了,并且执行完得到想要的结果。这时我就在想为什么我写这样的一条sql语句,就能给我查询出我想要的结果,为什么我写了update就能更新一条语句?它们的执行过程是什么样的?它们的原理是什么&a…

高糊马赛克秒变高清,表情帝:这还是我吗?

全世界有3.14 % 的人已经关注了爆炸吧知识来源:机器之心参与:魔王、杜伟有了这个工具,我们终于能够看到马赛克下的那张脸了。给出一张高糊人脸照片,你能用它做什么?杜克大学近期的一项研究可以将高糊人脸照片转换成清晰…

diy计算机组装注意事项,自己组装电脑要注意什么?DIY老司机教你装机注意事项...

相比品牌机,组装电脑的优势在于个性化的DIY硬件定制,让玩家可以自由选择适合自己的配置,可以说可玩度非常高。如今,电脑硬件设计已经十分人性化,网上还有很多直播教程,用视频的方式直观地教大家装机&#x…

Dapr + .NET Core实战(三)状态管理

状态管理解决了什么分布式应用程序中的状态可能很有挑战性。例如:应用程序可能需要不同类型的数据存储。访问和更新数据可能需要不同的一致性级别。多个用户可以同时更新数据,这需要解决冲突。服务必须重试 与数据存储交互 时发生的任何短期暂时性错误。…

Apache 2.0性能优化—MPM的选择与配置

Apache 2.0性能优化—MPM的选择与配置谈到Apache,大多数系统管理员对其稳定版1.3印象颇深。虽然Apache 2.0的系列开发版早已由Alpha、Beta发展到现在的GA(General Availability)版,但是一些人潜意识里还认为开发版并非可用于生产环…