MySQL的使用受到广大技术人员的喜爱,它的简便操作,低成本和高速运转成为它快速普及的基础。那么针对这个软件的负载均衡设置是接下来我们重点介绍的内容。当然在安装之前我们需要吧环境和系统都介绍一下。
一、安装明细
测试环境: Server1:ndbd 192.168.0.11 Server2:ndbd 192.168.0.12 Server3:mysqld –ndb-cluster 192.168.0.13 (ndbd_mgm ndbd_mgmd也在本机)
操作系统均为 RH ES3 kernel-2.4.21-9.EL glibc-2.3.2-95.6
所需软件包: mysql-max-5.0.22-linux-i686-icc-glibc23.tar.gz 下载地址:http://dev.mysql.com/downloads/mysql/5.0.html 下载时注意系统环境和软件包版本,MySQL是max版的。
1.安装:
#mvmysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/usr/local/ #cd/usr/local/ #tar-zxvfmysql-max-4.1.9-pc-linux-gnu-i686.tar.gz #ln-smysql-max-4.1.9-pc-linux-gnu-i686mysql #groupaddmysql #useradd-gmysqlmysql #cdmysql #scripts/mysql_install_db--user=mysql #chown-Rmysql:mysql.
2.编辑配置文件:
#cp/usr/local/mysql/support-files/my-medium.cnf/etc/my.cnf #vi/etc/my.cnf在文件尾加入 #my.cnf #exampleadditionstomy.cnfforMySQLCluster #(validinMySQL5.0) #enablendbclusterstorageengine,andprovideconnectstringfor #managementServerhost(defaultportis1186) [mysqld] ndbcluster ndb-connectstring=192.168.0.13 #provideconnectstringformanagementServerhost(defaultport:1186) [ndbd] connect-string=192.168.0.13 #provideconnectstringformanagementServerhost(defaultport:1186) [ndb_mgm] connect-string=192.168.0.13 #providelocationofclusterconfigurationfile [ndb_mgmd] config-file=/var/lib/mysql-cluster
保存&退出
#p#3.在Server1、Server2上创建日志文件夹,默认 # mkdir /var/lib/mysql-cluster
4.在Server3上创建ndb_mgmd启动配置文件:
#mkdir/var/lib/mysql-cluster #cd/var/lib/mysql-cluster #viconfig.ini 内容如下: #file"config.ini"-2datanodesand2SQLnodes #Thisfileisplacedinthestartupdirectoryofndb_mgmd(the #managementserver) #ThefirstMySQLServercanbestartedfromanyhost.Thesecond #canbestartedonlyonthehostmysqld_5.mysql.com [NDBDDEFAULT] NoOfReplicas=2 DataDir=/var/lib/mysql-cluster [NDB_MGMD] Hostname=192.168.0.13 DataDir=/var/lib/mysql-cluster [NDBD] HostName=192.168.0.11 [NDBD] HostName=192.168.0.12 [MYSQLD] [MYSQLD] [MYSQLD]
保存&退出 [MYSQLD] [MYSQLD] [MYSQLD] 表示允许有三台MySQL服务器从任何IP访问数据库结点。
三、启动负载均衡服务
Server3/usr/local/mysql/bin/ndb_mgmd-f/var/lib/mysql-cluster/config.ini Server1/usr/local/mysql/bin/ndbd--initial#只在***次启动ndbd时使用--initial参数 Server2/usr/local/mysql/bin/ndbd--initial Server3/usr/local/mysql/support-files/mysql.Serverstart
#p#四、检查工作状态
回到管理节点服务器Server3上,并启动管理终端:
#/usr/bin/ndb_mgm 键入show命令查看当前工作状态:(下面是一个状态输出示例) ndb_mgm>show ClusterConfiguration --------------------- [ndbd(NDB)]2node(s) id=2(notconnected,acceptingconnectfrom192.168.0.11) id=3@192.168.0.12(Version:5.0.22,Nodegroup:0,Master) [ndb_mgmd(MGM)]1node(s) id=1@192.168.0.13(Version:5.0.22) [mysqld(API)]3node(s) id=4@192.168.0.13(Version:5.0.22) id=5(notconnected,acceptingconnectfromanyhost) id=6(notconnected,acceptingconnectfromanyhost) mysqld(API)即mysqld--ndb-cluster,MySQL服务器节点。当前只有Server3MySQL启动。
如果上面没有问题,现在开始测试MySQL: 注意,这篇文档对于MySQL并没有设置root密码,推荐你自己设置Server1、Server2、Server3的MySQL root密码。
在Server3中:
#/usr/local/mysql/bin/mysql >usetest; >CREATETABLEctest(iINT)ENGINE=NDBCLUSTER; >INSERTINTOctest()VALUES(1); >SELECT*FROMctest; 应该可以看到1rowreturned信息(返回数值1)。
如果上述正常,则换到Server1、Server2上重复上面的测试,观察效果,数据库应该是同步刷新的。但首先要启动这两台机器的MySQL服务 # /usr/local/mysql/support-files/mysql.Server start 如果都没有问题,那么恭喜成功!
FAQ: 失败原因,可能是启动顺序不对。 查找所有ndb和sql相关进程,杀掉,重新按顺序来。 ps -aux |grep ndb ps -aux |grep sql kill -9 <PID> <PID> …<PID>
五、破坏性测试
将Server1或Server2的网线拔掉,观察另外一台集群服务器工作是否正常(可以使用SELECT查询测试)。测试完毕后,重新插入网线即可。
如果你接触不到物理服务器,也就是说不能拔掉网线,那也可以这样测试:在Server1或Server2上:ifconfig eth0 down #如果只有一块网卡,默认是eth0
之后在Server3上使用SELECT查询测试。并且在管理节点服务器的管理终端中执行show命令会看到被破坏的那台服务器的状态。测试完成后,只需要重新启动被破坏服务器的ndbd进程即可:# ndbd
注意:前面说过了,此时是不用加–inital参数的!至此,MySQL集群就配置完成,MySQL负载均衡功能完成!如想实现Apache+PHP+MySQL集群负载均衡,只需Server3上安装Apache+PHP,并添加Server4,与其做LVS即可。
转载请注明:IT运维空间 » 运维技术 » MySQL负载均衡的安装设定实录
发表评论