mysql lvs作用_mysql LVS  负载均衡

a4c26d1e5885305701be709a3d33442f.png

mysql LVS  负载均衡

a4c26d1e5885305701be709a3d33442f.png

(2008-06-19 13:34:14)

标签:

mysql

负载均衡

lvs

杂谈

sql 5.0 集群负载均衡—经过测试

转载请注明作者和出处

source:http://bbs.chinaunix.net/viewthread.php?tid=768920

参考自Nanu前辈的《MySQL集群配置》,非常感谢。

但在这篇文章中的概念有些模糊,小弟加以完善。不足之处,希望高手补充与批评!

QQ:4615075 请注明CU会员,欢迎交流!

一、介绍

========

测试环境:

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版的。

首先,明确几个概念(参照下图):

ndbd: 数据库节点。

mysqld --ndb-cluster:

MySQL服务器节点,程序直接访问的是这台机器的IP。默认端口仍是3306。

ndbd_mgm ndbd_mgmd:

管理节点。管理/查看各库节点和服务器节点的状态。

a4c26d1e5885305701be709a3d33442f.png

二、在Server1、Server2、Server3上安装MySQL

=================================

1.安装:

# mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/

# cd /usr/local/

# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz

# ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql

# groupadd mysql

# useradd -g mysql mysql

# cd mysql

# scripts/mysql_install_db --user=mysql

# chown -R mysql:mysql .

2.编辑配置文件:

# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

# vi /etc/my.cnf 在文件尾加入

# my.cnf

# example additions to my.cnf for MySQL Cluster

# (valid in MySQL 5.0)

# enable ndbcluster storage engine, and provide connectstring

for

# management Server host (default port is 1186)

[mysqld]

ndbcluster

ndb-connectstring=192.168.0.13

# provide connectstring for management Server host (default port:

1186)

[ndbd]

connect-string=192.168.0.13

# provide connectstring for management Server host (default port:

1186)

[ndb_mgm]

connect-string=192.168.0.13

# provide location of cluster configuration file

[ndb_mgmd]

config-file=/var/lib/mysql-cluster

保存&退出

3.在Server1、Server2上创建日志文件夹,默认

# mkdir /var/lib/mysql-cluster

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

# mkdir /var/lib/mysql-cluster

# cd /var/lib/mysql-cluster

# vi config.ini

内容如下:

# file "config.ini" - 2 data nodes and 2 SQL nodes

# This file is placed in the startup directory of ndb_mgmd

(the

# management server)

# The first MySQL Server can be started from any host. The

second

# can be started only on the host mysqld_5.mysql.com

[NDBD DEFAULT]

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访问数据库结点。

各参数功能,请参考http://dev.mysql.com/doc/refman/ ...

config-example.html

三、启动服务

============

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.Server start

四、检查工作状态

================

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

# /usr/bin/ndb_mgm

键入show命令查看当前工作状态:(下面是一个状态输出示例)

ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)]  2 node(s)

id=2 (not connected, accepting connect from 192.168.0.11)

id=3 @192.168.0.12 (Version:

5.0.22, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.0.13 (Version:

5.0.22)

[mysqld(API)] 3 node(s)

id=4 @192.168.0.13 (Version:

5.0.22)

id=5 (not connected, accepting connect from any host)

id=6 (not connected, accepting connect from any host)

mysqld(API)即mysqld

--ndb-cluster,MySQL服务器节点。当前只有Server3

MySQL启动。

如果上面没有问题,现在开始测试MySQL:

注意,这篇文档对于MySQL并没有设置root密码,推荐你自己设置Server1、Server2、Server3的MySQL

root密码。

在Server3中:

# /usr/local/mysql/bin/mysql

> use test;

> CREATE TABLE ctest (i INT)

ENGINE=NDBCLUSTER;

> INSERT INTO ctest () VALUES (1);

> SELECT * FROM ctest;

应该可以看到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

...

五、破坏性测试

==============

将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即可!

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值