Mysql cluster安装说明 一、说明 本文档介绍了如何规划、安装、配置和运行MySQL集群的基本知识。 二、Mysql集群结构图 三、名词解释 ? 管理节点: 这类节点的作用是管理MySQL簇内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责
Mysql cluster安装说明
本文档介绍了如何规划、安装、配置和运行MySQL集群的基本知识。
? 管理节点:这类节点的作用是管理MySQL簇内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。
? 数据节点:这类节点用于保存簇的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。没有必要有一个以上的副本。数据节点是用命令ndbd启动的。
? SQL节点:这是用来访问簇数据的节点。对于MySQL簇,客户端节点是使用NDB簇存储引擎的传统MySQL服务器。
Linux version2.6.18-164.el5
名称 |
Ip |
(MGM)管理节点 (NDBD)数据节点1 |
192.168.10.10 192.168.10.20 |
(NDBD)数据节点2 |
192.168.10.40 |
SQL节点1 |
192.168.10.30 |
SQL节点2 |
192.168.10.50 |
MySQL-Cluster-gpl-management-7.1.29-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-storage-7.1.29-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-tools-7.1.29-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-client-7.1.29-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-server-7.1.29-1.rhel5.x86_64.rpm
下载地址:http://www.mysql.com/downloads/cluster/7.1.html
上传
MySQL-Cluster-gpl-management-7.1.29-1.rhel5.x86_64.rpm,MySQL-Cluster-gpl-tools-7.1.29-1.rhel5.x86_64.rpm到服务器192.168.10.10上
安装:
[root@192.168.10.10 ]# rpm -ivh MySQL-Cluster-gpl-management-7.1.29-1.rhel5.x86_64.rp [root@192.168.10.10 ]# rpm -ivh MySQL-Cluster-gpl-tools-7.1.29-1.rhel5.x86_64.rpm [root@192.168.10.10 ]# mkdir /var/lib/mysql-cluster [root@192.168.10.10 ]# vi /var/lib/mysql-cluster/config.ini
[ndbd default] NoOfReplicas=2 DataMemory=80M IndexMemory=18M [tcp default] SendBufferMemory=2M ReceiveBufferMemory=2M [NDB_MGMD DEFAULT] PortNumber=1186 datadir=/var/lib/mysql-cluster [ndb_mgmd] NodeId=1 hostname=192.168.10.10 [ndbd] NodeId=2 hostname=192.168.10.20 datadir=/var/lib/mysql-data [ndbd] NodeId=4 hostname=192.168.10.40 datadir=/var/lib/mysql-data [mysqld] NodeId=3 hostname=192.168.10.30 [mysqld] NodeId=5 hostname=192.168.10.50
注意:NoOfReplicas的数字要和数据节点的数量一样!
上传MySQL-Cluster-gpl-storage-7.1.29-1.rhel5.x86_64.rpm分别到服务器192.168.10.20和192.168.10.40上
执行
[root@192.168.10.20]# rpm -ivh MySQL-Cluster-gpl-storage-7.1.29-1.rhel5.x86_64.rpm
192.168.10.40的安装同上
上传MySQL-Cluster-gpl-client-7.1.29-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-server-7.1.29-1.rhel5.x86_64.rpm分别到服务器192.168.10.30和192.168.10.50上
执行
[root@192.168.10.30]#rpm -ivh MySQL-Cluster-gpl-server-7.1.29-1.rhel5.x86_64.rpm
[mysqld] ndbcluster ndb-connectstring=192.168.10.10:1186 [mysql_cluster] ndb-connectstring=192.168.10.10:1186
192.168.10.50的安装同上
启动顺序为管理节点、数据节点、sql节点
//管理节点启动 //第一次启动 [root@192.168.10.10]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini //以后启动 [root@192.168.10.10]# ndb_mgmd //config.ini 修改启动 [root@192.168.10.10]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini //启动成功为: MySQL Cluster Management Server mysql-5.1.72 ndb-7.1.29 //查看状态 [root@192.168.10.10]# ndb_mgm ndb_mgm>show 如下信息,各个节点的状态 [ndbd(NDB)] 2 node(s) id=2 @192.168.10.20 (mysql-5.1.72 ndb-7.1.29, Nodegroup: 0, *) id=4 @192.168.10.40 (mysql-5.1.72 ndb-7.1.29, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.10.10 (mysql-5.1.72 ndb-7.1.29) [mysqld(API)] 2 node(s) id=3 (not connected, accepting connect from 192.168.10.30) id=5 (not connected, accepting connect from 192.168.10.50)
//数据节点启动 第一个数据节点启动时用 –initial其它不需要 [root@192.168.10.20]# ndbd –initial //
192.168.10.40 操作同上
//sql节点启动 [root@192.168.10.20]# mysqld_safe //
192.168.10.50 操作同上
如果启动出现如下提示
//sql节点启动 131226 01:01:50 mysqld_safe Logging to '/var/lib/mysql/localhost.localdomain.err'. 131226 01:01:51 mysqld_safe A mysqld process already exists
手动杀掉mysql的进程重新启动
在其中一个sql节点上建一个库,并建立一个测试表插入数据,再从另外一个sql节点登陆看是否同步,如果同步成功,否则失败。
1.关闭管理节点和数据节点,只需要在管理节点里执行:
[root@192.168.10.10]# ndb_mgm -e shutdown Node 2: Cluster shutdown initiated Node 4: Cluster shutdown initiated Node 4: Node shutdown completed. Node 2: Node shutdown completed. 3 NDB Cluster node(s) have shutdown. Disconnecting to allow management server to shutdown.
2.然后关闭Sql节点,分别在2个节点里运行:
[root@192.168.10.30]# service mysql stop
1.在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTERTABLE选项更改表的存储引擎。
2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键。
3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql节点追加用户。
先看看都安装了什么包:
如果安装过程中出现错误,删除重新装
rpm -qa|grep MySQL
然后把这些包都卸载掉
rpm -e MySQL-server*
rpm -e MySQL-client*