MYSQL簇群及实验
实验拓扑图:
 

mysql簇群集实验_拓扑图

地址参数设置
 

mysql簇群集实验_拓扑图_02

实验步骤:
Mysql管理节点配置:
设置网卡ip。
[root@localhost ~]# ifconfig eth0
eth0      Link encap:Ethernet HWaddr 00:0C:29:FE:39:09 
          inet addr:192.168.6.177 Bcast:192.168.6.255 Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fefe:3909/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:776 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:174237 (170.1 KiB) TX bytes:12614 (12.3 KiB)
          Interrupt:59 Base address:0x2024
安装mysql相应软件包:
[root@localhost ~]# tar zxvf mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz -C /usr/local/
-z:使用gzip ; -x:解压文件;-v:显示详细信息;-f:表示使用归档文件
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv mysql-cluster-gpl-7.1.9a-linux-i686-glibc23/ mysql/
                                                                  ----重命名为mysql
[root@localhost local]# groupadd mysql                               -----创建mysql组
[root@localhost local]# useradd -g mysql -s /sbin/nologin -M mysql       ----创建mysql用户
-g:指定用户的基本组名 ; -s:指定用户的登录shell -M:不为用户建立并初始化宿主目录
在mysql数据节点1和2上分别作如上操作:
为mysql服务节点作安装后的调整:
[root@localhost mysql]# scripts/mysql_install_db --user=mysql           ----初始化mysql数据库
[root@localhost mysql]# cd ..                                       ---切换到上一层目录
[root@localhost local]# chown -R mysql:mysql mysql/         ---把mysql/的属主改为mysql。属组改为mysql
[root@localhost local]# cp mysql/support-files/my-medium.cnf /etc/my.cnf  
----把mysql配置文件模板复制到mysql的主配置文件里
为mysql管理节点服务器建立配置文件:
[root@localhost local]# mkdir /var/lib/mysql-cluster                ----创建mysql管理节点的配置文件
[root@localhost local]# chown -R mysql:mysql /var/lib/mysql-cluster/ 
                                       ----把/var/lib/mysql-cluster的属主改为mysql。属组改为mysql
[root@localhost local]# cd /var/lib/mysql-cluster/
[root@localhost mysql-cluster]# vi config.ini(注意这个集群的配置管理节点的文件里的内容不可以写错)
[NDBD DEFAULT]                                             -------副本数
NoOfReplicas=2                                             ----有两个数据节点
[NDB_MGMD]                                             ----设置管理进程ndb_mgmd
HostName=192.168.6.177                                   ----管理节点服务器的ip地址
DataDir=/var/lib/mysql-cluster        -----控制(管理)节点启动后会有进程文件,进程文件的存储位置
[NDBD]                                                  ----设置数据节点1
HostName=192.168.6.178                                   ----数据节点ip地址
DataDir=/var/lib/mysql-cluster                                ----数据节点文件存放位置
[NDBD]
HostName=192.168.6.179
DataDir=/var/lib/mysql-cluster
[MYSQLD]                                                  -----相应的数据节点1
[MYSQLD]                                                  ----相应的数据节点2
注意:有几个节点就要写几个mysqld
启动管理节点服务器:
[root@localhost ~]# ln -s /usr/local/mysql/bin/* /usr/bin/                   ----建立软连接
[root@localhost ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini             ----启动管理节点服务器
MySQL Cluster Management Server mysql-5.1.51 ndb-7.1.9
2012-05-02 21:44:35 [MgmtSrvr] INFO     -- The default config directory '/usr/local/mysql/mysql-cluster' does not exist. Trying to create it...
2012-05-02 21:44:35 [MgmtSrvr] INFO     -- Sucessfully created config directory
Mysql数据节点1上的配置:
[root@localhost local]# cd mysql/
 [root@localhost mysql]# scripts/mysql_install_db --user=mysql                    ---初始化数据库
 [root@localhost mysql]# cd ..                                              ---返回到上一层目录
[root@localhost local]# chown -R mysql:mysql mysql/      ---把mysql/的属主更改为mysql。属组更改为mysql
[root@localhost local]# cp mysql/support-files/my-medium.cnf /etc/my.cnf
[root@localhost local]# vi /etc/my.cnf
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
ndbcluster                                                 --------宣告群集节点模式
ndb-connectstring=192.168.6.177(注意:在mysql后面添加这两行)        -----发布群集管理节点连接IP
[mysql_cluster]
ndb-connectstring=192.168.6.177(注意:在末尾添加这两行)
为mysql数据节点建立配置文件:
[root@localhost local]# mkdir /var/lib/mysql-cluster                     ---创建配置文件
[root@localhost local]# chown mysql:mysql /var/lib/mysql-cluster/           ---修改属主,属组权限
启动数据节点服务器:
[root@localhost local]# ln -s /usr/local/mysql/bin/* /usr/bin/                   ---建立软连接
[root@localhost local]# ndbd –initial                                      ---启动数据节点
(注意:只有在第一次启动或者对管理节点的config.ini进行改动后才需要使用—initial参数,平时不需要)
2012-02-20 18:47:41 [ndbd] INFO     -- Angel connected to '192.168.6.177:1186'
2012-02-20 18:47:41 [ndbd] INFO     -- Angel allocated nodeid: 2
[root@localhost local]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost local]# chkconfig --add mysqld                              ----添加为系统服务
[root@localhost local]# service mysqld start                                ---启动mysqld服务
Starting MySQL..                                           [确定]
[root@localhost local]# echo "/usr/local/mysql/bin/ndbd" >> /etc/rc.local           -----添加为开机启动服务
Mysql数据节点2上的配置跟数据节点1一样。
测试:
在mysql管理节点上,启动管理终端:
[root@localhost ~]# 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.6.178 (mysql-5.1.51 ndb-7.1.9, starting, Nodegroup: 0)
id=3 (not connected, accepting connect from 192.168.6.179)
 
[ndb_mgmd(MGM)] 1 node(s)                                   ----一个管理节点
id=1    @192.168.6.177 (mysql-5.1.51 ndb-7.1.9)
 
[mysqld(API)]   2 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
在mysql数据节点1上创建数据库并测试结果:
数据节点1上
数据节点2上
总结:
 1、mysql簇的优点:它具有可用性高和数据一致性的特点
 2、NDB是一种“内存”中的数据引擎
 3、启动顺序:先启动管理节点中的ndb_mgmd配置文件,在启动其他节点。
              关闭时要先关闭其他节点,在关闭管理节点的ndb_mgmd配置文件。
 4、mysql簇的数据都保存在NDB存储服务器中,表等保存在mysql服务器中。
 5、mysql簇的组成:application(应用服务器)-----》mysql数据库------》NDB存储服务器------》mangenment(管理服务器)
 6、MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster。