Mysql Proxy Lua主从搭建读写分离全过程

移动开发 iOS
Mysql Proxy Lua主从搭建读写分离全过程是本文要介绍的内容,主要是来了解Mysql Proxy的读写分离的过程,很详细的讲解了全过程,具体内容我们来看详细内容。

Mysql Proxy Lua主从搭建读写分离全过程是本文要介绍的内容,主要是来了解Mysql Proxy的读写分离的过程,很详细的讲解了全过程,具体内容我们来看详细内容。

下载 Mysql Proxy ***版,本文撰写时***版本为 MySQL Proxy 0.8.1 alpha

安装 Mysql Proxy 步骤如下:

解压

  1. Mysql Proxy-0.8.1-linux-glibc2.3-x86-32bit.gz  
  2. tar zxvf Mysql Proxy-0.8.1-linux-glibc2.3-x86-32bit.gz  
  3. cp -R Mysql Proxy-0.8.1-linux-glibc2.3-x86-32bit /usr/local/proxy-mysql 

新建或编辑 /etc/Mysql Proxy.cnf 文件,添加以下内容 ( 具体参数根据实际情况修改 ) :

  1. vi /etc/Mysql Proxy.cnf  
  2. [Mysql Proxy]  
  3. admin-username = zhangdongyu 
  4. admin-password = 123123 
  5. daemon = true 
  6. keepalive = true 
  7. proxy-backend-addresses = 192.168.0.88:3306  
  8. proxy-read-only-backend-addresses = 192.168.0.88:3307  
  9. proxy-lua-script = /usr/local/proxy-mysql/share/doc/Mysql Proxy/rw-splitting.lua  
  10. admin-lua-script = /usr/local/proxy-mysql/share/doc/Mysql Proxy/admin-sql.lua  
  11. log-file = /usr/local/proxy-mysql/cn.log  
  12. log-level = debug 

主要参数注解:

  1. proxy-backend-addresses mysql 主库(写)地址  
  2. proxy-read-only-backend-addresses mysql 从库(读)地址  
  3. proxy-lua-script 读写分离脚本  
  4. admin-lua-script admin 脚本  
  5. admin-username 数据库用户名(主从上都需建立相同用户)  
  6. admin-password 数据库密码  
  7. daemon daemon 进程运行  
  8. keepalive 保持连接(启动进程会有 2 个,一号进程用来监视二号进行,如果二号进程死掉自动重建,此参数在旧版本中无法使用) 

编辑 profile/.bash_profile 脚本

  1. vi /etc/profile( 或者 .bash_profile)  
  2. LUA_PATH="/usr/local/proxy-mysql/share/doc/Mysql Proxy/?.lua" 
  3. export LUA_PATH  
  4. export PATH=$PATH:/usr/local/proxy-mysql/bin  
  5. :wq  
  6. source /etc/profile 

为方便建立建立 Mysql Proxy.sh 脚本

  1. #!/bin/bash  
  2. mode=$1  
  3. if [ -z "$mode" ] ; then  
  4. mode="start" 
  5. fi  
  6. case $mode in  
  7. start)  
  8. Mysql Proxy --defaults-file=/etc/Mysql Proxy.cnf>/usr/local/proxy-mysql/cn.log   
  9. ;;  
  10. stop)  
  11. killall -9 Mysql Proxy  
  12. ;;  
  13. restart)  
  14. if $0 stop ; then  
  15. $0 start  
  16. else  
  17. echo "Restart failed!"  
  18. exit 1  
  19. fi  
  20. ;;  
  21. esac  
  22. exit 0 

启动 Mysql Proxy

sh 脚本

启动: ./Mysql Proxy.sh 或 ./Mysql Proxy.sh start

启动日志

重启: ./Mysql Proxy.sh restart

停止: ./Mysql Proxy.sh stop

测试:

为达到测试效果,修改 admin-sql.lua 脚本以下两行

  1. vi /usr/local/proxy-mysql/share/doc/Mysql Proxy/rw-splitting.lua  
  2. if not proxy.global.config.rwsplit then  
  3. proxy.global.config.rwsplit = {  
  4. min_idle_connections = 1, # 修改最小连接为 1  
  5. max_idle_connections = 2, # 修改***连接为 2  
  6. is_debug = true #debug 为 true  
  7. }  
  8. end 

重启 Mysql Proxy 代理

开启两个终端分别连接代理:

  1. ONE : ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040  
  2. TWO : ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040 

可看到连接成功信息:

操作 ONE 客户端:

执行 select 语句观察数据库 log 文件

  1. select * from z_member_info; 

观察主从库日志文件,发现查询发生在主库?

  1. 主库: 192.168.0.88:3306   
  2. 日志文件:  tail -f /usr/local/mysql/localstate/mysqlexecute.log 

这是因为 Mysql Proxy 代理会检测客户端连接,当连接没有超过 min_idle_connections 预设值时,不会进行读写分离,即查询操作会发生到主库上。

操作 TWO 客户端:

执行 select 语句观察数据库 log 文件

  1. select * from z_member_info; 

观察主从库日志文件,发现主库没有任何记录,查询日志记录在从库。

  1. 从库: 192.168.0.88:3306   
  2. 日志文件:   tail -f /usr/local/mysql3307/localstate/mysqlexecute.log 

操作两个终端进行 insert 操作,会发现写操作始终被主库( 3306 )日志文件记录。

至此 Mysql Proxy 安装测试完成。

小结:Mysql Proxy Lua主从搭建读写分离全过程的内容介绍完了,希望通过本文的学习能对你有所帮助!

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

2011-08-30 12:49:59

Mysql ProxyLua分离

2011-08-30 09:59:47

Mysql ProxyLUA

2011-08-30 10:51:40

MySQL ProxyLua分离

2020-06-01 15:45:54

MySQL数据库Clone

2010-05-17 11:19:44

MySQL proxy

2011-08-30 18:01:20

2011-02-22 10:46:02

Samba配置

2015-07-08 09:57:59

Git服务器分步详解

2009-12-08 17:56:16

WCF配置

2011-04-18 15:56:10

软件测试

2009-04-13 12:37:18

2011-01-21 17:51:52

2011-09-06 15:38:20

QT安装

2009-08-05 14:16:38

无线局域网设置无线路由无线网卡

2010-03-01 17:01:03

Python编程技巧

2012-11-06 10:19:18

Java自定义加载Java类

2009-06-10 16:55:42

cygwin netb安装

2010-11-19 10:11:49

Oracle物化视图

2010-06-17 13:10:09

Linux Grub修

2010-03-10 13:24:45

Zend Debugg
点赞
收藏

51CTO技术栈公众号