3台机器搭建集环境
1.集配置如下
(3台机器)
管理节点:192.168.6.134
数据节点 1: 192.168.6.135
数据节点 2: 192.168.6.136
sql 节点 1 : 192.168.6.135
sql 节点 2: 192.168.6.136
我使用3台机器进行配置,其中两台机器上的数据节点与sql节点在一起
2.管理节点安装(192.168.6.134)
安装
1.shell> groupadd mysql
2.shell> useradd mysql -g mysql
3.shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_ /usr/local/
4.shell> cd /usr/local/
5.shell> tar zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_ /usr/local/
6.shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
7.shell> chown -R mysql:mysql mysql
8.shell> cd mysql
9.shell> scripts/mysql_install_db --user=mysql
配置管理节点
1.shell> mkdir /var/lib/mysql-cluster
2.shell> cd /var/lib/mysql-cluster
vi config.ini添加以下内容
1.[ndbd default]
2.NoOfReplicas=2
3.DataMemory=80M
4.IndexMemory=18M
5.[ndb_mgmd]
6.NodeId=1
7.Hostname=192.168.6.134 〃管理 IP
8.datadir=/usr/local/mysql/logs
9.[ndbd]
10.NodeId=2
11.Hostname=192.168.6.135 〃数据节点 1
12.datadir=/usr/local/mysql/data/ 〃数据文件位置
13.[ndbd]
14.NodeId=3
15.Hostname=192.168.6.136 〃数据节点 2
16.datadir=/usr/local/mysql/data/ 〃数据文件位置
17.[MYSQLD]
18.[MYSQLD]
3.数据节点安装 (192.168.6.135, 192.168.6.136 )
执行相同的安装操作
1.shell> groupadd mysql
2.shell> useradd mysql -g mysql
3.shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 /usr/local/
4.shell> cd /usr/local/
5.shell> tar zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_
6.shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
7.shell> chown -R mysql:mysql mysql
8.shell> cd mysql
9.shell> scripts/mysql_install_db --user=mysql
1. shell> cp support-files/mysql.server /etc/init.d/mysqld
配置数据节点
vi /etc/myf添加入如下内容
1.安装mysql时start service失败[mysqld]
2.ndbcluster # run NDB storage engine
3.ndb-connectstring=192.168.6.134 # location of management server
4.
5.# Options for ndbd process:
6.[mysql_cluster]
7.ndb-connectstring=192.168.6.134 # location of management server
4.启动管理节点服务 (192.168.6.134)
view p^in copy
print?
1.shell> /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
2.shell> netstat -lntpu
3.看到1186开放说明启动正常
1.★必须注意:只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加initial参数!
5.启动数据节点服务(192.168.6.135, 192.168.6.136) Data (NDBD) node
1.
shell> /usr/local/mysql/bin/ndbd --initial备注:启动此处时,需要为防火墙开启1186,3306端口。
在两台机器上启动服务,执行相同操作
★必须注意:只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加-initial参
数!
启动结果如下:
1. 2012-06-30 05:01:11 [ndbd] INFO -- Angel connected to '192.168.6.134:1186
2.2012-06-30 05:01:11 [ndbd] INFO -- Angel allocated nodeid: 3
6.启动 SQL 节点服务(192.168.6.135, 192.168.6.136) MySQL server (SQL) node
1.
shell> service mysqld start如果在创建数据库时遇到如下错误
1.Access denied for user ''@'localhost' to database 'mysql
解决方法:
1.首先停止mysqld服务,然后后台运行
2.shell> /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
3.shell> service mysqld start
4.再用root登录,就一切正常
看到nbdb服务和3306端口说明启动OK
7.功能测试
在管理节点(192.168.6.134)上查看服务状态
1.shell> /usr/local/mysql/bin/ndb_mgm
2.ndb_mgm> show
1.Connected to Management Server at: localhost:1186
2.Cluster Configuration
3.
4.[ndbd(NDB)] 2 node(s)
5.id=2 @192.168.6.135 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
6.id=3 @192.168.6.136 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)
7.
8.[ndb_mgmd(MGM)] 1 node(s)
9.id=1 @192.168.6.134 (mysql-5.5.22 ndb-7.2.6)
10.
11.[mysqld(API)] 2 node(s)
12.id=4 @192.168.6.135 (mysql-5.5.22 ndb-7.2.6)
13.id=5 @192.168.6.136 (mysql-5.5.22 ndb-7.2.6)
可以看到这里的数据节点、管理节点、sql节点都是正常的
★非常重要:
1.在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集 存储引擎,或用ALTER TABLE选项更改表的存储引擎。
2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生 成隐含的主键。
3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的
MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql 节点追加用户。虽然在MySql Cluster7.2版本开始提供了"用户权限共享”.
测试一:
现在我们在其中一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数 据是否同步
在数据节点1(192.168.6.135)上执行:
1.shell> /usr/local/mysql/bin/mysql -u root -p
2.mysql>show databases;
3.mysql>create database aa;
4.mysql>use aa;
5.mysql>CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同 步失败
6.mysql> INSERT INTO ctest2 () VALUES (1);
7.mysql> SELECT * FROM ctest2;
然后在数据节点2上看数据是否同步过来了
经过测试,在非master上创建数据,可以同步到master上
查看表的引擎是不是NDB,>show create table表名;
测试二、关闭一个数据节点,在另外一个节点写输入,开启关闭的节点,看数据是否同步过 来
首先把数据节点1重启,然后在节点2上添加数据
在节点2(192.168.6.136)上操作如下:
mysql> create database bb;
1.mysql> use bb
2.mysql> CREATE TABLE ctest3 (i INT) ENGINE=NDB;
3.mysql> use aa
4.mysql> INSERT INTO ctest2 () VALUES (3333);mysql> SELECT * FROM ctest2;
1.等节点1启动完毕,启动节点1的服务
#/usr/local/mysql/bin/ndbd --initial#service mysqld start 然后登录进去查看数据
# /usr/local/mysql/bin/mysql -u root p可以看到数据已经同步过来了,说明数据可以双向同步 了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论