前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下的MySQL Proxy 读写分离该怎么操作?

Linux下的MySQL Proxy 读写分离该怎么操作?

作者头像
Java_老男孩
发布2020-06-23 16:27:51
2.1K0
发布2020-06-23 16:27:51
举报

MySQL-Proxy简介

mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至mysql-proxy上。mysql-proxy最基本的用法,就是作为一个请求拦截,请求中转的中间层:

进一步的,mysql-proxy可以分析与修改请求。拦截查询和修改结果,需要通过编写Lua脚本来完成。mysql-proxy允许用户指定Lua脚本对请求进行拦截,对请求进行分析与修改,它还允许用户指定Lua脚本对服务器的返回结果进行修改,加入一些结果集或者去除一些结果集均可。

根本上,mysql-proxy是一个官方提供的框架,具备良好的扩展性,可以用来完成:

  1. sql拦截与修改
  2. 性能分析与监控
  3. 读写分离
  4. 请求路由

下载

需求

  1. 1台MySQL-Proxy机器,IP:192.168.1.106
  2. 1台MySQl主服务器(可读可写),IP:192.168.1.107
  3. 1台MySQL从服务器(只读),IP:192.168.1.109

解压MySQL-Proxy

在192.168.1.106上解压:mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz

重命名文件

MySQL配置

创建mysql-proxy.cnf

vim mysql-proxy.cnf

代码语言:javascript
复制
[mysql-proxy]
admin-username=root     #admin用户名
admin-password=root      admin密码
proxy-address=192.168.1.106:4040 # 代理地址
proxy-backend-addresses=192.168.1.107:3306     #mysql主服务器ip地址,默认端口3306
proxy-read-only-backend-addresses=192.168.1.109:3306 #mysql从服务器ip地址,有多个逗号隔开 ip:port,ip:port,ip:port
proxy-lua-script=/cyb/soft/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua       #lua位置
log-file=/cyb/soft/mysql-proxy/log/mysql-proxy.log       #日志文件存储路径
log-level=debug
daemon=true     # mysql-proxy以守护进程方式运行
keepalive=true      #保持连接启动进程会有2个, 一号进程用来监视二号进程

创建log目录

修改mysql-proxy.cnf文件的权限

代码语言:javascript
复制
chmod 660 mysql-proxy.cnf

修改rw-splitting.lua

代码语言:javascript
复制
vim /cyb/soft/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

min_idle_connections:最小闲置连接数

max_idle_connections:最大闲置连接数

MySQL-Proxy启动

代码语言:javascript
复制
./mysql-proxy --defaults-file=/cyb/soft/mysql-proxy.cnf

测试

在192.168.1.106上关闭防火墙

代码语言:javascript
复制
service iptables stop

chkconfig iptables off

演示过程中,有2次连不上,原因不明,还有待查证,目前功能是已经实现了,注意,此时连mysql-proxy的端口已经不是3306了,是4040

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL-Proxy简介
    • 下载
      • 需求
        • 解压MySQL-Proxy
          • 重命名文件
            • MySQL配置
              • 创建mysql-proxy.cnf
            • 创建log目录
              • 修改mysql-proxy.cnf文件的权限
                • 修改rw-splitting.lua
                  • MySQL-Proxy启动
                    • 测试
                    相关产品与服务
                    云数据库 SQL Server
                    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档