MYSQL
簇群及实验
实验拓扑图:
地址参数设置
实验步骤:
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。