MySQL负载均衡的安装设定实录

网络 网络优化 网络运维
本文将诶少了MySQL的负载均衡问题,包括环境介绍,操作系统和软件安装和配置过程。现在我们就来学习一下这方面的内容吧。

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.安装:

  1. # mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/  
  2. # cd /usr/local/  
  3. # tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz  
  4. # ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql  
  5. # groupadd mysql  
  6. # useradd -g mysql mysql  
  7. # cd mysql  
  8. # scripts/mysql_install_db --user=mysql  
  9. # chown -R mysql:mysql . 

2.编辑配置文件:

  1.  
  2. # cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf  
  3. # vi /etc/my.cnf 在文件尾加入  
  4. # my.cnf  
  5. # example additions to my.cnf for MySQL Cluster  
  6. # (valid in MySQL 5.0)  
  7. # enable ndbcluster storage engine, and provide connectstring for  
  8. # management Server host (default port is 1186)  
  9. [mysqld]  
  10. ndbcluster  
  11. ndb-connectstring=192.168.0.13  
  12. # provide connectstring for management Server host (default port: 1186)  
  13. [ndbd]  
  14. connect-string=192.168.0.13  
  15. # provide connectstring for management Server host (default port: 1186)  
  16. [ndb_mgm]  
  17. connect-string=192.168.0.13  
  18. # provide location of cluster configuration file  
  19. [ndb_mgmd]  
  20. config-file=/var/lib/mysql-cluster 

保存&退出

#p#3.在Server1、Server2上创建日志文件夹,默认
# mkdir /var/lib/mysql-cluster

4.在Server3上创建ndb_mgmd启动配置文件:

  1. # mkdir /var/lib/mysql-cluster  
  2. # cd /var/lib/mysql-cluster  
  3. # vi config.ini  
  4. 内容如下:  
  5. # file "config.ini" - 2 data nodes and 2 SQL nodes  
  6. # This file is placed in the startup directory of ndb_mgmd (the  
  7. # management server)  
  8. # The first MySQL Server can be started from any host. The second  
  9. # can be started only on the host mysqld_5.mysql.com  
  10. [NDBD DEFAULT]  
  11. NoOfReplicas= 2  
  12. DataDir= /var/lib/mysql-cluster  
  13. [NDB_MGMD]  
  14. Hostname= 192.168.0.13  
  15. DataDir= /var/lib/mysql-cluster  
  16. [NDBD]  
  17. HostName= 192.168.0.11  
  18. [NDBD]  
  19. HostName= 192.168.0.12  
  20. [MYSQLD]  
  21. [MYSQLD]  
  22. [MYSQLD] 

保存&退出
[MYSQLD]
[MYSQLD]
[MYSQLD]
表示允许有三台MySQL服务器从任何IP访问数据库结点。

三、启动负载均衡服务

  1. Server3 /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini  
  2. Server1 /usr/local/mysql/bin/ndbd --initial #只在***次启动ndbd时使用--initial参数  
  3. Server2 /usr/local/mysql/bin/ndbd --initial  
  4. Server3 /usr/local/mysql/support-files/mysql.Server start 

#p#四、检查工作状态

回到管理节点服务器Server3上,并启动管理终端:

  1. # /usr/bin/ndb_mgm  
  2. 键入show命令查看当前工作状态:(下面是一个状态输出示例)  
  3. ndb_mgm> show  
  4. Cluster Configuration  
  5. ---------------------  
  6. [ndbd(NDB)]     2 node(s)  
  7. id=2 (not connected, accepting connect from 192.168.0.11)  
  8. id=3 @192.168.0.12   (Version: 5.0.22, Nodegroup: 0, Master)  
  9. [ndb_mgmd(MGM)] 1 node(s)  
  10. id=1 @192.168.0.13   (Version: 5.0.22)  
  11. [mysqld(API)] 3 node(s)  
  12. id=4 @192.168.0.13   (Version: 5.0.22)  
  13. id=5 (not connected, accepting connect from any host)  
  14. id=6 (not connected, accepting connect from any host)  
  15. mysqld(API)即mysqld --ndb-cluster,MySQL服务器节点。当前只有Server3 MySQL启动。 

如果上面没有问题,现在开始测试MySQL:
注意,这篇文档对于MySQL并没有设置root密码,推荐你自己设置Server1、Server2、Server3的MySQL root密码。

在Server3中:

  1. # /usr/local/mysql/bin/mysql  
  2. > use test;  
  3. > CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;  
  4. > INSERT INTO ctest () VALUES (1);  
  5. > SELECT * FROM ctest;  
  6. 应该可以看到1 row returned信息(返回数值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即可。

责任编辑:佟健 来源: 互联网
相关推荐

2011-03-01 14:46:53

Debian Proftpd

2010-05-07 12:23:23

nginx负载均衡

2010-05-06 15:43:18

NAT负载均衡

2010-05-06 12:11:24

NAT负载均衡

2010-05-06 16:58:10

Dns负载均衡

2010-05-10 14:29:11

线路负载均衡

2010-05-06 13:41:42

ASP.NET负载均衡

2010-05-10 15:03:50

交换负载均衡

2010-04-27 13:20:38

负载均衡集群

2010-05-06 16:41:37

EIGRP负载均衡

2010-07-15 11:16:04

负载均衡

2010-04-21 11:08:57

MySQL负载均衡

2010-05-04 10:44:18

JBOSS负载均衡

2010-05-04 16:20:11

resin负载均衡

2010-05-07 12:27:53

nginx负载均衡

2012-05-07 10:17:48

2017-07-03 08:08:25

负载均衡分类

2010-05-06 10:01:26

nginx负载均衡

2010-04-22 12:25:24

MySQL负载均衡功能

2010-04-20 21:27:28

tomcat负载均衡配
点赞
收藏

51CTO技术栈公众号