MySQL-Cluster架构图文详解1111/14141414MySQL-ClusterMySQL-ClusterMySQL-ClusterMySQL-Cluster架构图文详解架构图文详解架构图文详解架构图文详解Stan,2011/6/7前言:前言:前言:前言:这是我第一次接触Linux,CentOS,MySQL,用了5天的时间终于将基于CentOS5.0系统下MySQL-Cluster架构成功,下面将我这些经验分享给大家。若发现有什么错误和疏忽之处,请发邮件给我:stan_home@qq.com。配置之前,先补充一些Linux常用命令:ls浏览ls-l查看文件夹及文件权限vi文本编辑器(搜索、编辑)i状态为修改退出:“Esc”键后,然后输入:,然后输入“wq”写入、退出:q!强制退出vim-f[文件名]强制恢复文件cp拷贝文件命令rm删除文件mkdir创建文件夹ln连接问价或目录man[命令]查看命令参数ifconfig网卡信息命令dig(域信息搜索器)df查看系统文件vmstat系统状态ps查看进程(-e显示全部,-f全格式输出)ps-ef|grepmysql查看所有mysql进程Tips:输入一个文件或文件名,按一下Tab键,会自动完成改文件名(前提是这个文件或文件夹必须存在);例如:输入[root@localhosttmp]#tar–xzvfmysql-c按一下Tab键自动完成:[root@localhosttmp]#tar–xzvfmysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz下面,我们一起来架构吧!一、配置环境:一、配置环境:一、配置环境:一、配置环境:OS:LinuxCentOS5.0MySQL-Cluster架构图文详解2222/14141414MySQL:mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz(注意:需用Cluster版本,可在官网上下载)节点配置情况:MGM:192.168.20.231NDBD1:192.168.20.232NDBD2:192.168.20.233SQL1:192.168.20.234SQL2:192.168.20.235修改CentOSIP地址(1)打开/etc/sysconfig/network-scripts/ifcfg-eth0文件,做如下修改#IntelCorporation82545EMGigabitEthernetController(Copper)DEVICE=eth0BOOTPROTO=staticONBOOT=yesHWADDR=00:0c:29:be:b3:53IPADDR=192.168.20.231NETMASK=255.255.255.0GATEWAY=192.168.20.1MySQL-Cluster架构图文详解3333/14141414(2)修改/etc/resolv.conf文件,如下(修改DNS服务)nameserver202.101.172.35searchlocaldomain(3)重启网络服务[root@localhost~]#servicenetworkrestart二、软件安装:二、软件安装:二、软件安装:二、软件安装:(一)管理节点MGMMGMMGMMGM配置管理节点首先在合适的位置,创建一个管理节点的配置文件,步骤如下:[root@localhost~]#mkdir/var/lib/mysql-cluster[root@localhost~]#cd/var/lib/mysql-cluster[root@localhostmysql-cluster]#viconfig.ini配置文件config.ini内容如下:[ndbddefault]NoOfReplicas=2DataMemory=80MIndexMemory=18M[tcpdefault]MySQL-Cluster架构图文详解4444/14141414portnumber=2202[ndb_mgmd]hostname=192.168.20.231datadir=/var/lib/mysql-cluster[ndbd]hostname=192.168.20.232datadir=/usr/local/mysql/data[ndbd]hostname=192.168.20.233datadir=/usr/local/mysql/data[mysqld]hostname=192.168.20.234[mysqld]hostname=192.168.20.235安装管理节点,不需要mysqld二进制文件,只需要MySQLCluster服务端程序(ndb_mgmd)和监听客户端程序(ndb_mgm)。这两个文件都在下载的MySQL-cluster文件解压后的bin文MySQL-Cluster架构图文详解5555/14141414件夹中。执行如下步骤,在集群的管理节点上安装ndb_mgmd和ndb_mgm。1、改变地址到/var/tmp目录下,解压MySQL-Cluster压缩文件,取出ndb_mgm和ndb_mgmd复制到/usr/local/bin目录下。[root@localhost~]#cd/var/tmp[root@localhosttmp]#tar–xzvfmysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz[root@localhosttmp]#cdmysql-cluster-gpl-7.1.13-linux-i686-glibc23[root@localhosttmp]#cpbin/ndb_mgm*/usr/local/bin2、改变路径为拷贝到的目录下,并确保这两个文件可执行。[root@localhosttmp]#cd/usr/local/bin[root@localhostbin]#chmod+xndb_mgm*3、在/usr/local下创建mysql文件夹。[root@localhost~]#cd/usr/local[root@localhostlocal]#mkdirmysql(二)、数据节点NDBDNDBDNDBDNDBD和SQLSQLSQLSQL节点配置数据节点NDBD和SQL节点在每一个SQL节点中的/etc目录下找到my.cnf文件,并做如下配置:[client]socket=/usr/local/mysql/sock/mysql.sock[mysqld]ndbclusterdatadir=/usr/local/mysqlsocket=/usr/local/mysql/sock/mysql.sockndb-connectstring=192.168.20.231old_passwords=1[mysql_cluster]ndb-connectstring=192.168.20.231MySQL-Cluster架构图文详解6666/14141414在每一个数据节点NDBD和SQL节点的机器上,用root用户执行下面的步骤。1、检查/etc/passwd和/etc/group文件,是否存在mysql组和mysql用户,如果没有,用下面的命令创建一个mysql组,并在改组中添加mysql用户。[root@localhost~]#groupaddmysql[root@localhost~]#useradd–gmysqlmysql2、改变文件夹位置到mysql压缩包的存放位置,解压文件,准备安装,步骤如下:(下载文件可以从其他电脑映射,在/home/下面创建一个download文件夹,如果是在本机Linux下下载的文件,则不需要此映射步骤。)[root@localhost~]#mount-tcifs-ousername=name,password=password//192.168.20.210/MySQL/home/download[root@localhost~]cp/home/download/mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz/var/tmp[root@localhost~]#cd/var/tmp[root@localhosttmp]#tar–C/usr/local–xzvfmysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz3、改变位置到local文件夹,改变mysql解压后的文件夹名称为mysql,然后执行提供的脚本,创建系统数据库。[root@localhosttmp]#cd/usr/local[root@localhostlocal]#mvmysql-cluster-gpl-7.1.13-linux-i686-glibc23/mysql/[root@localhostlocal]#cdmysqlMySQL-Cluster架构图文详解7777/14141414[root@localhostmysql]#mkdirsock[root@localhostmysql]#scripts/mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql4、为MySQL服务及数据目录设置必要的服务。[root@localhostmysql]#chown-Rroot.[root@localhostmysql]#chown-Rmysql.mysql/usr/local/mysql/data[root@localhostmysql]#chown-Rmysql.mysql/usr/local/mysql/sock[root@localhostmysql]#chgrp-Rmysql.[root@localhostmysql]#ls-lMySQL-Cluster架构图文详解8888/141414145、复制MySQL的启动脚本到如下的文件夹,确保可以执行。并设置为当系统启动时,同时启动MySQL。[root@localhostmysql]#cpsupport-files/mysql.server/etc/rc.d/init.d/MySQL-Cluster架构图文详解9999/14141414[root@localhostmysql]#chmod+x/etc/rc.d/init.d/mysql.server[root@localhostmysql]#chkconfig--addmysql.server三、三、三、三、ClusterClusterClusterCluster环境启动环境启动环境启动环境启动注意启动顺序:首先是管理节点,然后是NDBD节点,最后是SQL节点。1111、[MGM][MGM][MGM][MGM][root@localhost~]#ndb_mgmd-f/var/lib/mysql-cluster/config.ini使用ndb_mgm来监听客户端,如下:[root@localhost~]#ndb_mgm2222、[NDBD][NDBD][NDBD][NDBD]首次启动,则需要添加--initial参数,以便进行NDB节点的初始化工作。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。[root@localhost~]#/usr/local/mysql/bin/ndbd--initial如果不是首次启动,则执行下面的命令。[root@localhost~]#/usr/local/mysql/bin/ndbdMySQL-Cluster架构图文详解10101010/141414143333、[SQLD][SQLD][SQLD