MYSQL-PROXY的安装与运用方法
发布时间:2022-02-13 17:37:16 所属栏目:搜索优化 来源:互联网
导读:本篇内容介绍了MYSQL-PROXY的安装与使用方法的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! MySQL Proxy 安装与使用 1. MYSQL 安装 (略) 2. MYSQL PR
本篇内容介绍了“MYSQL-PROXY的安装与使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! MySQL Proxy 安装与使用 1. MYSQL 安装 (略) 2. MYSQL PROXY 安装 2.0 获取系统信息 getconf LONG_BIT cat /etc/redhat-release 2.1 下载 --二进制版本 (请下载v0.7.0以上) wget http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.6.1-linux-rhel4-x86-32bit.tar.gz # 具体版本以SETP2.0所得信息而定 2.2 安装 2.2.1 #必备软件: LUA cd /opt/install wget http://www.lua.org/ftp/lua-5.1.2.tar.gz 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 (root@FuncTestDB:)> 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) (root@FuncTestDB:)> 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还不推荐被使用在生产环境, “MYSQL-PROXY的安装与使用方法”的内容就介绍到这里了,感谢大家的阅读。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |