集群:使用一组服务器提供相同的服务
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/下有关日志文件删除就行, 然 后重新启动服务