文档章节

mysql 读写分离mysql-proxy 代理

胡子叭槎
 胡子叭槎
发布于 2016/11/11 00:15
字数 798
阅读 190
收藏 4
点赞 0
评论 0

mysql-proxy 是一个mysql代理程序,主要目的实现mysql的读写分离
是通过lua脚本来实现
软件版本:mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
这是一个通用的二进制安装包,下载地址:https://pan.baidu.com/s/1hsJmi9I

1    解压安装

        tar -xvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz

        把刚才解压的文件夹mysql-proxy-0.8.5-linux-el6-x86-64bit 复制到/usr/local/mysql-proxy

[root@myvm mysql]# mv mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy

        把/usr/local/mysql-proxy 设置为root用户和root组

root@myvm local]# chown root.root mysql-proxy/ -R

2    设置

    2.1 编写启动脚本mysql-proxy ,由于启动脚本死有Lua写的,所以可以从其他方面找到修改即可。启动脚本这里可以下载http://pan.baidu.com/s/1bpDWFqJ 并放在/etc/init.d/下面

[root@myvm mysql]# cp mysql-proxy /etc/init.d/

    2.2修改lua脚本
        vim /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
        min_idle_connections = 1,
        max_idle_connections = 1,

        注意:修改上面是修改的最小和最大启动读写分离的链接数

    2.3添加mysql-proxy的配置文件
        vim /etc/sysconfig/mysql-proxy
        ADMIN_USER="admin"
        ADMIN_PASSWORD="admin"
        ADMIN_ADDRESS=""
        ADMIN_LUA_SCRIPT="/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua"
        PROXY_ADDRESS=""
        PROXY_USER="mysql-proxy"
        PROXY_OPTIONS="--daemon --log-level=info --log-use-syslog --plugins=proxy --plugins=admin --proxy-backend-addresses=192.168.242.134:3306 --proxy-read-only-backend-addresses=192.168.242.135:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua"

#//--daemon:以守护进程模式启动mysql-proxy
#//--proxy-backend-addresses:后端可读写的mysql服务器的地址和端口
#//--proxy-read-only-backend-addresses:后端只读mysql服务器的地址和端口
#//--proxy-lua-script:完成mysql代理功能的Lua脚本

上面的proxy-backend-addresses 后面跟上主服务器的地址,proxy-read-only-backend-addresses 后面跟上从服务器的地址

    2.4启动mysql-proxy
        /etc/init.d/mysql-proxy start
        netstat -anutlp|grep mysql

        注意:需要先对/etc/init.d/mysql-proxy 进行权限设置为755

[root@myvm init.d]# chmod 755 mysql-proxy 
[root@myvm init.d]# /etc/init.d/mysql-proxy start
Starting /usr/local/mysql-proxy/bin/mysql-proxy:           [  OK  ]

2.5验证
        由于需要在mysql-prxoy上面登录mysql服务器所以需要安装一个mysql客户端,如果你不在proxy上登录,那么mysql-proxy服务器连mysql客户端都不许要安装

        在master上面创建一个用户
        grant all on *.* to 'jack'@'%' identified by '123456'
        flush privileges

        登录mysql-proxy的管理端
        mysql -uadmin -padmin -h mysql-proxy-ip --prot 4041
        这里的用户名和密码是启动脚本中设置的用户名和密码并非mysql master所授权的用户
        登录mysql真实提供功能的服务器
        mysql -ujack -p123456 -h mysql-proxy-ip --port 3306
        
        然后在master上使用tcpdump抓包分析
        tcpdump -i eth0 -nn -XX ip dst mysql-master-ip and tcp dst port 3306

        在从服务器上也使用tcpdump抓包分析
        tcpdump -i eth0 -nn -XX ip dst mysql-slave-ip and tcp dst port 3306

        mysql -ujack -p123456 -h mysql-proxy-ip --port 3306
        create database db_name可以看到数据在master上抓包了
        select * from up01;可以看到数据在slave上抓包了

        如果没有实现,请多开几个mysql-proxy的连接会话
        并多执行几次select语句

        可以在mysql-proxy的管理端上使用
        select * from backends去查看后端相应信息
        +-------------+----------------------+-------+------+------+-------------------+
        | backend_ndx | address              | state | type | uuid | connected_clients |
        +-------------+----------------------+-------+------+------+-------------------+
        |           1 | 192.168.125.128:3306 | up    | rw   | NULL |                 0 |
        |           2 | 192.168.125.129:3306 | up    | ro   | NULL |                 0 |
        +-------------+----------------------+-------+------+------+-------------------+
        2 rows in set (0.00 sec)
        如果不想写启动脚本就要用以下命令和参数去启动
       /usr/local/mysql-proxy/libexec/mysql-proxy --daemon --log-level=info --log-use-syslog --plugins=proxy --plugins=admin --proxy-backend-addresses=192.168.125.128:3306 --proxy-read-only-backend-addresses=192.168.125.12:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua --pid-file=/var/run/mysql-proxy.pid --proxy-address= --user=mysql-proxy --admin-username=admin --admin-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua --admin-password=admin
 

© 著作权归作者所有

共有 人打赏支持
胡子叭槎
粉丝 21
博文 126
码字总数 132913
作品 0
成都
数据库管理员
Mysql-proxy实现MariaDB读写分离

Mysql Proxy 简介 MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测、分析、或改变它们的通信。它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分...

jungege1216
2014/05/14
0
0
redhat6.5 mysql proxy代理及主从同步及读写分离

redhat6.5 mysql proxy代理及主从同步及读写分离 1.上传及安装所需要的软件包和语言 2.解压 mysql-proxy到 /usr/local/下,并重新命名(可以不重新命名,主要太长闲麻烦) 3.修改环境变量 编...

ekode
2016/08/26
31
0
mysql集群(二)

4、mysql-proxy完成负载均衡与读写分离 1、基于程序代码内部实现 在代码中对select操作分发到从库;其它操作由主库执行;这类方法也是目前生产环境应用最广泛,知名的如DISCUZ X2。优点是性能...

我心中有猛狗
2016/05/30
57
2
Proxy实现MySQL读写分离

使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是读操作还是写操作,然后分发至对应的mysql...

彭锐
05/31
0
0
使用mysql-proxy实现读写分离

mysql-proxy实现MySQL读写分离 使用二进制格式的mysql-proxy的安装配置 mysql-proxy本身并不能进行读写分离,要实现读写分离要依赖于lua,所以要先查看是否安装了lua,如果没有安装使用yum i...

blueclo
前天
0
0
MySQL5.6 读写分离

一:读写分离架构图 二:安装配置MySQL-Proxy 三:测试读写分离 四:添加MySQL-Proxy 为系统服务 1.1读写分离架构图 1.Slave-1不接收写,也不接收读 2.Slave-1有中继日志,也有二进制日志,因...

凡夫俗子_
2015/07/13
0
0
mysql读写分离

Mysql读写分离实现水平扩展:做这个之间必须要做好主从复制才行 Mysql读写分离技术 方法一:基于程序代码内部实现:这类方法是目前生产环境中应用最广泛的 在代码中根据insert,select进行选...

探花无情
2017/04/19
0
0
mysql—proxy读写分离

mysql-proxy简介 MySQL Proxy就是这么一个中间代理层,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而...

xiaobing002
06/26
0
0
用MySQL-Proxy实现读写分离

MySQL-Proxy, 6月份发布的MySQL-Proxy是处在你的MySQL数据库客户和服务端之间的程序,它还支持嵌入性脚本语言Lua。这个代理可以用来分析、监控和变换(transform)通信数据,它支持非常广泛的...

oschina
2008/09/14
2.5K
4
安装mysql-proxy实现mysql读写分离

一. 环境描述 操作系统版本:centos 7.2 主服务器:192.168.0.72 node2 从服务器:192.168.0.73 node3 调度服务器MySQL-Proxy:192.168.0.71 node1 二. 配置mysql主从 2.1 安装mysql node2和...

karony1
06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步

rsync远程同步 重点!重点!!重点!!! 例子 • rsync -av /etc/passwd /tmp/1.txt • rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt rsync格式 • rsync [OPTION] … SRC DEST • rs......

Linux_老吴
15分钟前
0
0
iis php 环境搭建,非常详细的教程

准备篇 一、环境说明: 操作系统:Windows Server 2016 PHP版本:php 7.1.0 MySQL版本:MySQL 5.7.17.0 二、相关软件下载: 1、PHP下载地址: http://windows.php.net/downloads/releases/ph...

T_star
17分钟前
0
0
Day35 rsync通过服务同步

rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口。 log file:指定日志文件。 pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等...

杉下
22分钟前
0
0
【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

编译 Luajit 库,的确是一个挑战。因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了。以前只是编译了适用于真机的 Luajit 库。最近在尝试编译模拟器 Luajit 库,就顺便梳理了...

ios122
22分钟前
0
0
rsync至ssh同步

rsync: 文件同步工具,可实现“增量拷贝”;使用yum安装rsync包 常用选项:-a=-rtplgoD (-r同步目录,-t保持文件的时间属性,-p保持文件的权限属性,-l保持软连接,-g保持文件的属组,-o保持...

ZHENG-JY
28分钟前
0
0
TradingView 学习笔记

#前言 公司最后需要使用TradingView展示K线图走势。由于之前没接触过,拿到文档时一脸蒙逼。还好找到二篇文章+Demo代码,直接改改就行了。 #被批 由于上面的懵懂,有个问题困扰4个小时没解决...

hihubs
28分钟前
0
0
10.28 rsync工具介绍~10.31 rsync通过ssh同步

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而...

洗香香
30分钟前
1
0
php如何使用JSON-RPC查找以太坊中的最新块哈希hash值?

我用PHP中开发了一个以太坊块资源管理器,并成功地与我的服务器Geth节点建立了JSON-RPC通信。然而,当我试图找出最后一个区块时,我陷入了困境。我在https://ethereum.gitbooks.io/frontier...

智能合约
36分钟前
1
0
卷积为什么要旋转180度

参考《最容易理解的对卷积(convolution)的解释》 https://blog.csdn.net/bitcarmanlee/article/details/54729807 这篇博客详细讲解了“卷积”,提及了为什么要反转180度,我简述下。 1.卷积的...

datadev_sh
39分钟前
0
0
【2018.07.18学习笔记】【linux高级知识 20.23-20.26】

20.23/20.24/20.25 告警系统邮件引擎 告警系统邮件引擎由两个文件组成,放在/mon/mail/目录下:mail.py、mail.sh mail.py:是邮件的核心python脚本,邮件功能的实现mail.sh:是告警邮件系统...

lgsxp
44分钟前
16
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部