mysql cluster 安装配置方案
mysql cluster (mysql 集群)安装配置方案
一、准备
1、准备服务器
计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL CLuster体系,将一个SQL节点一个数据节点一个SQL节点放在了一台服务器上(192.168.1.252),将另一个SQL节点和一个数据节点放在了另外一台服务器上(192.168.1.52)。
节点 | 对应的IP和端口 |
管理节点(1个) | 192.168.1.252 |
SQL节点 (2个) | 192.168.1.252:3331 |
192.168.1.52:3331 | |
数据节点 (2个) | 192.168.1.252 |
192.168.1.52 |
2、准备软件包
现在的mysql提供了一个专门作集群的安装包,这样就不用一个个的下载所需要的工具了。我在网上找到了最新的而且下载比较快的资源,第一步先是下载,有200M左右。
cd /var/tmp wget http://mysql.ntu.edu.tw/Downloads/MySQL-Cluster-7.1/ mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz
二、安装
1、数据节点和SQL节点
第一步 添加mysql用户和组,这是必需的。
groupadd mysql useradd -g mysql mysql
第二步 开始安装,下载的版本是免编译的,复制过来就可以用了。
cd /var/tmp tar -C /usr/local-zxvf mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz cd /usr/local mv mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz mysql
第三步 在mysql修改目录权限,这也是必需的,不然第四步会报错的。
cd mysql chown -R root . chown -R mysql data chgrp -R mysql .
第四步 安装初始的数据库表
scripts/mysql_install_db --user=mysql
第五步 设置mysql服务为开机自启动
cp support-files/mysql.server /etc/rc.d/init.d/mysqld chmod +x /etc/rc.d/init.d/mysqld chkconfig --add mysqld
第六步 启动mysql服务,如果报错请参考
service mysqld start
这六步,在252和52服务器上都执行一次,数据节点和SQL节点就算安装好了。
2、管理节点
管理节点的安装更简单,只要在252服务器上复制些文件出来就行了,虽然只有一步,便这一步在目前环境下(管理节点和SQL节点在同一台服务器上)也不是必需的。
cd mysql cp bin/ndb_mgm*/usr/local/bin cd /usr/local/bin chmod +x ndb_mgm*
管理节点只要ndb_mgm和ndb_mgmd两个文件和一个配置文件即可,因此把这三个文件复制到那里,那里就是管理节点了。ndb_mgmd是mysql cluster管理服务器,ndb_mgm是客户端管理工具,等一下会用到它们的。到目前为止两个SQL节点两个数据节点和一个管理节点都安装完成了,但是还不能工作,得进行配置,把这几个节点联系在一起协同工作。
三、配置
1、数据节点和SQL节点
mysql服务启动时会默认加载/etc/my.cnf作为其配置文件,要将一个mysql服务器配置成一个数据节点和SQL节点也非常的简单,这是配置前的my.cnf的内容:
[client] port =3306 socket =/tmp/mysql.sock [mysqld] basedir =/usr/local/mysql/ datadir =/usr/local/mysql/data user = mysql log-error =/var/lib/mysql/mysqld.err
只要在内容结尾加上4行就将这个mysql服务器变成了一个数据节点和SQL节点。
ndbcluster #运行NDB存储引擎 #指定管理节点 以上两行声明其为SQL节点 ndb-connectstring=192.168.1.252 [mysql_cluster] #指定管理节点 以上两行声明其为数据节点 ndb-connectstring=192.168.1.252
注意两台服务器都得这样配置。
2、管理节点
管理节点的配置复杂一点,在管理服务器252的/var/lib/mysql-cluster/目录中创建config.ini文件。
cd /var/lib mkdir mysql-cluster cd mysql-cluster vim config.ini
在config.ini文件中添加以下内容:
[NDBD DEFAULT] NoOfReplicas=1 #每个数据节点的镜像数量 DataMemory=500M #每个数据节点中给数据分配的内存 IndexMemory=300M #每个数据节点中给索引分配的内存 [TCP DEFAULT] portnumber=2202 #数据节点的默认连接端口 [NDB_MGMD] #配置管理节点 hostname=192.168.1.252 datadir=/var/lib/mysql-cluster/ #管理节点数据(日志)目录 [NDBD] #数据节点配置 hostname=192.168.1.252 datadir=/usr/local/mysql/data/ #数据节点目录 [NDBD] hostname=192.168.1.52 datadir=/usr/local/mysql/data/ [MYSQLD] #SQL节点目录 hostname=192.168.1.252 [MYSQLD] hostname=192.168.1.52
[NDBD DEFAULT]:表示每个数据节点的默认配置在每个节点的[NDBD]中不用再写这些选项,只能有一个。
[NDB_MGMD]:表示管理节点的配置,只有一个。
[NDBD]:表示每个数据节点的配置,可以有多个。
[MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址,也可以什么都不写,只保留一个空节点,表示任意一个IP地址都可以进行访问,此节点的个数表明了可以用来连接数据节点的SQL节点总数。
四、启动
1、管理节点
mysql cluster 需要各个节点都 进行启动后才可以工作,节点的启动顺序为管理节点->数据节点->SQL节点。首先启动管理节点
cd /usr/local/bin ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini
命令行中的ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。
./ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
启动时可能会报个WARNING,如WARNING -- at line 7: [TCP] portnumber is deprecated,这个不用管。可以正常工作的。
2、数据节点
安装后第一次启动数据节点时要加上--initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时。
cd mysql/bin/ndbd --initial
如果显示以下信息说明启动完成:
2010-12-31 12:48:03 [ndbd] INFO -- Angel connected to '192.168.1.252:1186'
2010-12-31 12:48:03 [ndbd] INFO -- Angel allocated nodeid: 3
3、SQL节点
service mysqld start
4、客户端管理
cd /usr/local/bin ./ndb_mgm
这时就进入到客户端,可以对mysql cluster进行各项操作,进入后会有ndb_mgm > 提示符出现,首先来查看各节点的连接情况,在ndb_mgm> 提示符下输入show:
ndb_mgm> show ClusterConfiguration --------------------- [ndbd(NDB)] 2 node(s) id=2 @192.168.1.252 (mysql-5.1.51 ndb-7.1.9,Nodegroup:0,Master) id=3 @192.168.1.52 (mysql-5.1.51 ndb-7.1.9,Nodegroup:1) [ndb_mgmd(MGM)]1 node(s) id=1 @192.168.1.252 (mysql-5.1.51 ndb-7.1.9) [mysqld(API)] 2 node(s) id=4 @192.168.1.252 (mysql-5.1.51 ndb-7.1.9) id=5 @192.168.1.52 (mysql-5.1.51 ndb-7.1.9)
可以看到各个节点已经连接上了,至此,mysql cluster配置完成。
五、关闭
mysql cluster的关闭也很简单,只需在ndb_mgm> 提示符下输入 shutdown即可,这时会显示各节点的关闭信息,再输入exit即可退出ndb_mgm管理,回到shell中。虽然mysql cluster 关闭了,但是SQL节点的mysql服务并不会停止的。接下来就可以做各种试验了
mysql cluster 安装配置方案的更多相关文章
- [mysql]brew 安装 配置 操作 mysql(中文问题)
mac 下卸载mysqldmg mac下mysql的DMG格式安装内有安装文件,却没有卸载文件--很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删. 很多文章记述要删的文件不完整,后来在stac ...
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...
- Mysql主从安装配置
Mysql主从安装配置 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置 ...
- mysql主从复制安装配置
mysql主从复制安装配置 基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.182.111(主) node2:192.168.1 ...
- 记一次 mysql主从复制安装配置 过程
mysql主从复制安装配置 1.centos安装及准备 去centos官网下载相应source版本的镜像文件并在vmware中安装,安装中会遇到填写installation source,输入以下即可 ...
- mysql cluster (mysql 集群)安装配置方案(转)
一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL ...
- 虚拟机+apache+php+mysql 环境安装配置
虚拟机的安装:直接下一步即可,注意修改路径. 安装完成后新建虚拟机,直接下一步.如果选择镜像文件后出现错误,可以试着去修改电脑bios中的虚拟化设置,改为enable,如下图: apache安装: 1 ...
- Linux(Ubuntu) Mysql的安装配置例子以及常用命令
1.安装配置例子 有空再写 2.注意事项 (1)启动mysql 在/etc/mysql 目录下 service mysql start 新版本是(service mysqld start ) (2 ...
- MySQL的安装配置
安装配置 MySQL1.官方下载 MySQL2.用 tar 解压.tar.bz 或.tar.gz3.解压后有三个目录,分别为 usr etc var4.进入 usr,进入 bin5.在主机上建个目录( ...
随机推荐
- xcopy拷贝判断是否成功 robocopy排除子目录
xcopy \\172.16.22.65\server\*.* C:\Inetpub\wwwroot\Server /h /r /s /yif %errorlevel% neq 0 echo copy ...
- C++Vector使用方法
C++内置的数组支持容器的机制,可是它不支持容器抽象的语义.要解决此问题我们自己实现这种类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用须要的头文 ...
- C++ 外部调用private方法
1.思考,对于C++,能不能在外部调用私有方法? 2.在Java中,子类继承不能缩小父类成员的访问权限.因为在Java中,继承只是表示Is-A关系,因此,父类提供的接口,子类必须承诺仍然提供,不能缩小 ...
- 7za 解压文件
7za.exe x -aoa 完美国际补丁.7z 7za.exe x -aoa 完美国际补丁.7z -o"C:\Users\Admin\AppData\Local\Temp\完美国际补丁&q ...
- 理解class.forName()
使用jdbc方式连接数据库时会使用一句代码Class.forName(String className).这句话是什么意思呢?首先说一点Class.forName(String className)这 ...
- Git链接到自己的Github(2)进阶使用
接着上一篇的,从github clone下代码. 1.先查看当前开发分支 $ cat .git/HEAD ref: refs/heads/master 这里的master是默认分支. 2.查看当前状态 ...
- html5中viewport使用
html5中viewport使用 转载自:http://www.maoegg.com/the-usage-of-viewport-in-html5/ 用html5开发移动应用时往往会遇到手机的分辨率或 ...
- PHP为fopen,file_get_contents等函数请求web地址时增加Http头的方法
我们在使用fsockopen时可以方便的自定义自己请求的http头内容来访问某些对客户端请求头有特殊限制的网站,但是使用fopen,file_get_contents等函数请求web地址时怎么来灵活定 ...
- mvc ajax_返回数据
假设cshtml文件中是这样的: <script type="text/javascript"> $(document).ready(function(){ $(&qu ...
- java_类泛型承继方法
package ming; class Apple3<T>{ private T info; public Apple3(){} public Apple3(T info){ this.i ...