Mysql集群ndbd

1630阅读 0评论2016-05-31 niao5929
分类:系统运维

Mysql集群ndbd
 
、环境:

每个节点的操作系统都是Redhat 5.5  i686

用途

主机名

Ip

管理节点1

Mgm

192.168.9.27

数据节点1

Ndb1

192.168.9.26

数据节点2

Ndb2

192.168.9.28

Sql节点1

Mysqld1

192.168.9.26

Sql节点2

Mysqld2

192.168.9.28

这里是为了节约机器,所以一台机器安两个sql节点和数据节点ndb,计算机名和ip地址如上。这里为了统一写下:        DB1    192.168.9.26

        DB2    192.168.9.28

 

二、在DB1和DB2上部署MySQL(配置过程相同)

1.建立mysql用户组,MySQL-max-5.0.24-linux-i686.tar.gz解压后移动到/usr/local/MySQL

1.   [root@db1 software]#groupadd MySQL 

2.  [root@db1 software]#useradd –g MySQL MySQL 

3.  [root@db1 ]# tar  -zxf  MySQL-max-5.0.24-linux-i686.tar.gz 

4.  [root@db1 software]#mv  MySQL-max-5.0.24-linux-i686  MySQL 

5.  [root@db1 software]#mv MySQL /usr/local/MySQL

 

2.拷贝mysql配置文件到/etc/下,初始化数据库,设置目录权限,启动mysql

1.    [root@db1 software]# cd /usr/local/MySQL/ 
 2.  [root@db1 MySQL]# cp support-files/my-medium.cnf /etc/my.cnf 
 3.  [root@db1 MySQL]# scripts/MySQL_install_db --user=MySQL  
4.  [root@db1 MySQL]#chown -R  mysql:mysql  /usr/local/mysql 
 5. [root@db1 MySQL]# bin/MySQLd_safe --user=MySQL &

 

 

3.mysql写入服务,初始化mysqlroot密码

1.  [root@db1 MySQL]# cp support-files/MySQL.server /etc/rc.d/init.d/MySQLd 
2.  [root@db1 MySQL]# chkconfig --add MySQLd  
3.  [root@db1 MySQL]# bin/MySQLadmin -u root password 123456  

4.停止MYsql服务,修改配置文件

1.  [root@db1 MySQL]# service MySQLd stop  2.  [root@db1 MySQL]# vi /etc/my.cnf

在最下面添加内容:

1.  [MySQLD] 
 2.  ndbcluster 
 3.  ndb-connectstring=192.168.20.27   
 4.  [MySQL_CLUSTER]  5.  ndb-connectstring=192.168.20.27

保存退出,先不要启动MySQL服务

 

三.  部署管理节点

管理节点的配置也很简单,但它是MySQL cluster配置中最关键的一步。

1 解压MySQL-max-5.0.24-linux-i686.tar.gz包,拷贝包里bin目录下的ndb_mgmndb_mgmd两文件到/usr/bin/目录中(看一下是否具有可执行权限)。

1.  [root@mgm MySQL-max-5.0.24-linux-i686]# cp  bin/ndb_mgm* /usr/bin

2 创建管理节点数据库目录,并且在此目录中建立配置文件config.ini

1.  Mkdir /usr/local/MySQL-cluster 
 2.  Cd /usr/local/MySQL-cluster 
 3.  Vi config.ini

添加如下内容:

1.  [NDBD DEFAULT] 
2.  NoOfReplicas=2
3.  DataMemory=200M
4.  IndexMemory=100M  
 
5.  [TCP DEFAULT] 
6.  portnumber=2202   
 
 7.  [NDB_MGMD]    //配置管理节点  
8.  hostname=192.168.20.27
9.  datadir=/usr/local/MySQL-cluster
   
 10.[NDBD]    //配置第1ndb节点
11.hostname=192.168.20.26 
12.datadir=/usr/local/MySQL/data  
 
13.[NDBD]      // 配置第2ndb节点
14.hostname=192.168.20.28 
15.datadir=/usr/local/MySQL/data   
  
16.[MySQLD]       //配置第一个sql节点
17.hostname=192.168.20.26  
  
18.[MySQLD]      // 配置第2sql节点
19.hostname=192.168.20.28

保存退出

四、MySQL cluster的启动

MySQL cluster的启动顺序:管理节点--数据节点-SQL节点。

1[root@mgm MySQL-cluster]# ndb_mgmd -f ./config.ini

如果没有提示,表示启动成功,Ps -aux查看进程,看是否已经启动

1.  root  4700  0.0 0.6   5984 1668 ?    Ssl 14:20   0:00 ndb_mgmd -f ./config.ini

2,分别在DB1DB2上启动数据节点

1.  [root@db1 MySQL]# bin/ndbd  --initial

3 启动SQL节点上的MySQL服务

1.  Service MySQLd start

4,全部节点都启动成功后,在MGM节点上用ndb_mgm工具的show命令查看群集的状态

1.    [root@mgm ~]# 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 @192.168.9.26  (Version: 5.0.24, Nodegroup: 0, Master)
id=3 @192.168.9.28  (Version: 5.0.24, Nodegroup: 0)
 
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.9.27  (Version: 5.0.24)
 
[mysqld(API)] 2 node(s)
id=4 @192.168.9.26  (Version: 5.0.24)
id=5 @192.168.9.28  (Version: 5.0.24)

 

五.MySQL cluster的测试

声明一点,要使用MySQL cluster,表的存储引擎必须是ndb的。

DB1192.168.20.26)中创建表,插入数据:

mysql> use  test

Database changed

mysql> show tables;

Empty set (0.06 sec)

 

mysql> create  table   t1(id int)  engine=ndb;

Query OK, 0 rows affected (0.39 sec)

 

mysql> insert  into  t1  value('11'),('12');

 

然后在DB2192.168.20.28)上看到了刚才创建的表和表里的数据

mysql> use  test

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| t1             |

+----------------+

1 row in set (0.03 sec)

 

mysql> select *  from  t1;

+------+

| id   |

+------+

|   11 |

|   12 |

+------+

2 rows in set (0.03 sec

 

到此,MySQL的安装和配置基本完成。

注意:如果在db1上创建一个数据库是不能同步到db2上去的,两边需要有相同名字的库名,库中的数据才能同步过去

 

上一篇:搭建PXE环境批量部署Redhat6(win方式)
下一篇:明明白白你的Linux服务器——安全篇