mysql-proxy安装,MYSQL-PROXY的安装与使用

目前MYSQL-PROXY已经有相当的功能, 比如负载平衡,读写分离,失败切换等, 就简单功能做了测试,,,,,[@more@]

MySQL Proxy 安装与使用

1. MYSQL 安装

(略)

2. MYSQL PROXY 安装

2.0 获取系统信息

getconf LONG_BIT

cat /etc/redhat-release

2.1 下载

--二进制版本 (请下载v0.7.0以上)

wget

# 具体版本以SETP2.0所得信息而定

2.2 安装

2.2.1 #必备软件: LUA

cd /opt/install

wget

tar zxvf lua-5.1.2.tar.gz

cd lua-5.1.2

make linux install

2.2.2 #二进制版本安装

tar zxvf mysql-proxy-0.6.1-linux-rhel4-x86-32bit.tar.gz

cp mysql-proxy-0.6.1-linux-rhel4-x86-32bit/sbin/mysql-proxy $MYSQL目录/bin

mysql-proxy & //在后台启动,默认启动时4040和4041端口

mysql -P4040 // 现在这样也可以连接数据了

3. MYSQL PROXY 使用

手册:http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-cmdline.html

帮助: mysql-proxy --help-all

3.0 测试环境

10.2.224.236 RHEL4/32/MYSQL 5.0.51a -- 简称为S-A

10.2.224.237 RHEL4/32/MYSQL 5.0.51a -- 简称为S-B

10.5.232.210 RHEL4/32/MYSQL PROXY 0.6.1 -- 简称为PROXY

10.2.226.24 -- 简称CLIENT

3.1 测试读写分离

要求: 写在S-A上, 读在S-B上,

启动PROXY :

mysql-proxy --proxy-read-only-backend-addresses=10.2.224.237:3306

--proxy-backend-addresses=10.2.224.236:3306

--proxy-lua-script=/opt/install/mysql-proxy-0.6.1-linux-rhel4-x86-32bit/share/mysql-proxy/rw-splitting.lua &

CLENT连接:

mysql -u probe -P4040 -palibaba -h 10.5.232.210 eservice -e 'select count(*) from test';

mysql -u probe -P4040 -palibaba -h 10.5.232.210 eservice -e "insert into test values ('236')";

这时,你在同一个SESSION中,不管你INSERT多少次, 你SELECT的结果都是一样的.因为你插和查根本不是同一个库.

这也就表明读写分离了!

(注意这里的LUA文件,是在连接产生时才会执行.)

3.2 测试负载平衡

mysql-proxy --proxy-backend-addresses=10.2.224.237:3306

--proxy-backend-addresses=10.2.224.236:3306 &

(如果有,还可以写多个)

在测试的时候,注意只有在五个SESSION以上,PROXY才会考虑平衡,在这里用了10个连接:

mysql -u probe -P4040 -palibaba -h 10.5.232.210 eservice

在S-A上:

mysql> show processlist ;

+----+-------+--------------------+----------+---------+------+-------+------------------+

| Id | User | Host | db | Command | Time | State | Info |

+----+-------+--------------------+----------+---------+------+-------+------------------+

| 56 | root | 127.0.0.1:57794 | eservice | Query | 0 | NULL | show processlist |

| 83 | probe | 10.5.232.210:33770 | eservice | Sleep | 42 | | NULL |

| 84 | probe | 10.5.232.210:33772 | eservice | Sleep | 35 | | NULL |

| 85 | probe | 10.5.232.210:33774 | eservice | Sleep | 29 | | NULL |

| 86 | probe | 10.5.232.210:33776 | eservice | Sleep | 23 | | NULL |

| 87 | probe | 10.5.232.210:33778 | eservice | Sleep | 17 | | NULL |

+----+-------+--------------------+----------+---------+------+-------+------------------+

在S-B上:.

mysql> show processlist ;

+---------+-------+--------------------+----------+---------+------+-------+------------------+

| Id | User | Host | db | Command | Time | State | Info |

+---------+-------+--------------------+----------+---------+------+-------+------------------+

| 5685701 | root | 127.0.0.1:58177 | eservice | Query | 0 | NULL | show processlist |

| 5685710 | probe | 10.5.232.210:33769 | eservice | Sleep | 50 | | NULL |

| 5685711 | probe | 10.5.232.210:33771 | eservice | Sleep | 42 | | NULL |

| 5685712 | probe | 10.5.232.210:33773 | eservice | Sleep | 37 | | NULL |

| 5685713 | probe | 10.5.232.210:33775 | eservice | Sleep | 31 | | NULL |

| 5685714 | probe | 10.5.232.210:33777 | eservice | Sleep | 25 | | NULL |

+---------+-------+--------------------+----------+---------+------+-------+------------------+

从这么看,倒像是负载平衡起作用了!

4. 失败切换

当我们以多服务器启动时:

mysql-proxy --proxy-backend-addresses=10.2.224.237:3306

--proxy-backend-addresses=10.2.224.236:3306 &

只要一个节点(237)DOWN了. 那PROXY就连不上了!

(原来连着236的SESSION不会断,但新加的连接就报:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 )

这时:

PROXY 会报: network-mysqld-proxy.c.3709: connect(10.2.224.237:3306) failed: Connection refused 并试着重新连接!

V0.6.1 有这个BUG,V0.7.0 解决这个问题

5. PROXY 管理

你可以用MYSQL CLIENT直接连到PROXY管理窗口进行管理查询:(管理端口可以更改)

mysql -P4041 -h 10.5.232.210

(:)> select * from proxy_connections;

+------+--------+-------+----------+

| id | type | state | db |

+------+--------+-------+----------+

| 0 | server | 0 | |

| 1 | proxy | 0 | |

| 2 | server | 10 | |

| 3 | proxy | 10 | eservice |

+------+--------+-------+----------+

4 rows in set (0.00 sec)

(:)> select * from proxy_config;

+----------------------------+-------------------+

| option | value |

+----------------------------+-------------------+

| admin.address | :4041 |

| proxy.address | :4040 |

| proxy.lua_script | NULL |

| proxy.backend_addresses[0] | 10.2.224.237:3306 |

| proxy.backend_addresses[1] | 10.2.224.236:3306 |

| proxy.fix_bug_25371 | 0 |

| proxy.profiling | 1 |

+----------------------------+-------------------+

7 rows in set (0.00 sec)

不过,据说PROXY还不推荐被使用在生产环境,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值