首页 > 代码库 > 部署mysql集群

部署mysql集群

集群:使用一组服务器提供相同的服务
LB :负载均衡集群
HA :高可靠集群
mysql集群中服务器的角色?
1、数据节点  ndbd
                      用来储藏数据(表的记录)
2、sql节点
                     用户访问数据的接口
                     执行用户输入的sql语句                     
3、管理节点 mgmd
                     管理集群中的所有主机
                     在启动管理进程时加载,自己的主配置文件,定义集群中各个主机的角色
4、客户端:访问数据
                    只要有连接数据库服务的工具就可以了   //(mysql-cluster-client)
mysql-clusert  提供3种进程
管理进程    管理进程运行的管理主机上
ndbd进程   运行在数据节点上。
sql进程(集群软件包里提供的数据库服务,运行sql节点上)

一、安装提供集群服务的软件包                                                                                                                                      

tar -xvf MySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpbundle.tar             
 rpm -ivh MySQL-Cluster-*.rpm

二、配置管理节点  192.168.1.1

管理集群中的所有主机,启动管理进程时加载自己的主配置文件/etc/config.ini (设置集群中个主机的角色,各个主机角色在运行时参数的设置)

[ndbd  default]                               // 数据节点公共配置
[ndb_mgmd]                                    //设置管理主机
[ndbd]                                        // 指定数据节点主机
[mysqld]                                      // 指定sql节点                                            
mkdir   /var/log/mysql-cluster                //自己创建这个目录

 

vim  /etc/config.ini                      //自己编辑这个文件
[ndbd  default] 
NoOfReplicas=2                          //数据节点主机个数
DataMemory=80M                         
IndexMemory=18M                       
[ndb_mgmd]                              //管理节点
nodeid=1                          
hostname=192.168.1.1        
datadir=/var/log/mysql-cluster  
[ndbd]                                              //数据节点
nodeid=2                          
hostname=192.168.1.10 
datadir=/var/log/mysql-cluster/data 
[ndbd]                                             //数据节点
nodeid=20                         
hostname=192.168.1.20 
datadir=/var/log/mysql-cluster/data 
[mysqld]                                           //mysql节点
nodeid=10                              
hostname=192.168.1.30  
[mysqld]    
nodeid=30                              
hostname=192.168.1.40
:wq

三、配置数据节点  192.168.1.10   192.168.1.20

数据节点用来存储数据,运行数据进程

ping   192.168.1.1
mkdir  -p    /var/log/mysql-cluster/data             //自己创建这个目录
vim  /etc/my.cnf                                     //自己编辑这个文件
[mysqld]
datadir=/var/log/mysql-cluster/data        
ndb-connectstring=192.168.1.1
ndbcluster                         
[mysql_cluster]
ndb-connectstring=192.168.1.1
另一个数据节点配置和这个一样
只需 scp /etc/my.cnf

四、配置sql节点  192.168.1.30   192.168.1.40

供用户访问执行sql语句,运行mysql数据服务。

vim  /etc/my.cnf
[mysqld]
ndbcluster                         
default-storage-engine=ndbcluster  
[mysql_cluster]
ndb-connectstring=192.168.1.1 
:wq
 另一个mysql节点配置和这个一样
只需 scp /etc/my.cnf  root@192.168.1.40:/etc/my.cnf

五、启动集群服务

1 启动管理节点

ndb_mgmd  -f   /etc/config.ini
netstat  -untlap  | grep  :1186
ps  aux | grep   ndb_mgmd
pkill   -9    ndb_mgmd                      //结束进程需要这条口令
[root@localhost ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
ndb_mgm>exit

2 启动数据节点

[root@localhost ~]#ndbd
pgrep   ndbd                  
pkill  -9  ndbd                            //结束进程需要这条口令
*  ndb 节点进程启动不了,
在管理节点和数据节点执行  
iptables  -F             
service iptables save
然后再在数据节点上执行ndbd
3 启动sql节点
service  mysql  restart

 六、验证集群

解决单点故障
      当有一台数据节点down机不会影响服务
      当有一台MYSQLdown机也不会影响服务
启动mysql时经常出现缺少xxx.pid这个问题,只需要把/var/lib/mysql/下有关日志文件删除就行,  然 后重新启动服务

部署mysql集群