广告
返回顶部
首页 > 资讯 > 数据库 >mysql 基于mysql-proxy实现读写分离
  • 434
分享到

mysql 基于mysql-proxy实现读写分离

摘要

Mysql 读写分离 读写分离首先不推荐使用,很多业务场景也没有必要,不仅增加技术复杂度,而且可能会导致读到落后的数据,建议优化数据库,推荐使用keepalive+mysql双主复制的方案 然后mysql-proxy是官方推出的中间件,不仅


	mysql 基于mysql-proxy实现读写分离
[数据库教程]

Mysql 读写分离

读写分离首先不推荐使用,很多业务场景也没有必要,不仅增加技术复杂度,而且可能会导致读到落后的数据,建议优化数据库,推荐使用keepalive+mysql双主复制的方案

然后mysql-proxy是官方推出的中间件,不仅无法高可用,而且这个项目已经夭折了,使用mysql-route了,本次仅记录mysql-proxy的安装过程。

mysql-proxy不再支持mysql5.7以后的client客户端登录

一、环境描述

技术图片

  • mysql读写分离原理是master与slave进行主从同步的前提下,让master库处理增、删、改、更新操作,而slave库处理查询操作,达到缓解mysql数据库的压力
  • mysql-proxy是官方提供的mysql中间件服务,客户端无需修改任何设置,mysql-proxy将app应用的sql请求,根据转发规则,并基于lua脚本实现数据读写分离与负载均衡的需求。
系统版本        Centos7.8

mysql-proxy    192.168.197.128

主mysql        192.168.197.129

从mysql      192.168.197.130

二、安装mysql主从同步

yum -y install GCc gcc-c++ ncurses ncurses-devel cmake bison bison-devel
yum -y install mariadb-server mariadb mariadb-libs 

具体主从配置mysql5.7主从复制配置

注意:由于mysql-proxy不再支持 mysql5.7以上的访问mysql访问后端server,故只参考里面的配置文件即可,不用安装mysql5.7

三、安装mysql-proxy

1.登录mysql-proxy

创建proxy系统用户

useradd -r mysql-proxy

mkdir -p /usr/local/mysql-proxy

cd  /usr/local/mysql-proxy

wget Http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz
tar -zxvf mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz
mv mysql-proxy-0.8.4-linux-el6-x86-64bit/* /usr/local/mysql-proxy/

技术图片

2.添加环境变量

echo -e ‘ export PATH=/usr/local/mysql-proxy/bin/:$PATH ‘ >> /etc/profile && source /etc/profile

3.启动MYSQL-Proxy中间件

方法一:直接命令启动

mysql-proxy --daemon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins="proxy" --proxy-backend-addresses="192.168.197.129:3306" --proxy-read-only-backend-addresses="192.168.197.130:3306" --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin --admin-username="admin" --admin-passWord="admin" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua"

方法二:(推荐)添加配置文件启动

mkdir -p /usr/local/mysql-proxy/conf
mkdir -p /usr/local/mysql-proxy/log
vim /usr/local/mysql-proxy/conf/mysql-proxy.conf

[mysql-proxy]
user=mysql-proxy
admin-username=admin
admin-password=admin

#proxy-address=192.168.197.128:3306
proxy-backend-addresses=192.168.197.129:3306
proxy-read-only-backend-addresses=192.168.197.130:3306

admin-lua-script=/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

pid-file=/usr/local/mysql-proxy/log/mysql-proxy.pid
log-file=/usr/local/mysql-proxy/log/mysql-proxy.log
plugins=admin,proxy
log-level=debug
keepalive=true
daemon=true

chmod 660 /usr/local/mysql-proxy/conf/mysql-proxy.conf

启动

/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf

4.查看端口

netstat -lntp | grep mysql

技术图片

4040 代理监听,web对外接口

4041 管理模块监听,查询proxy自身的状态

5.查看proxy的运行状态

#账号密码由步骤3中的启动代码指定,具体如下
#--plugins=admin --admin-username="admin" --admin-password="admin" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua"

mysql -h 192.168.197.128 -uadmin -padmin -P4041 -e ‘select * from backends;‘

技术图片

提示unknown,所以需要在master与slave数据库添加对proxy进行访问授权

6.登录master与slave 添加远程访问权限

grant all on *.* to [email protected]‘%‘ identified by "Huawei12#$";
flush privileges;

7.proxy使用4040端口登录主从数据库

mysql -h192.168.197.128 -uroot -pHuawei12#$ -P4040 -e ‘show databases;‘

退出数据库,使用admin登录查看proxy状态

mysql -h 192.168.197.128 -uadmin -padmin -P4041 -e ‘select * from backends;‘

通过授权连接后,proxy显示主从up状态

mysql 基于mysql-proxy实现读写分离

原文地址:https://blog.51cto.com/11442747/2513842

您可能感兴趣的文档:

--结束END--

本文标题: mysql 基于mysql-proxy实现读写分离

本文链接: https://www.lsjlt.com/news/7555.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql 基于mysql-proxy实现读写分离
    mysql 读写分离 读写分离首先不推荐使用,很多业务场景也没有必要,不仅增加技术复杂度,而且可能会导致读到落后的数据,建议优化数据库,推荐使用keepalive+mysql双主复制的方案 然后mysql-proxy是官方推出的中间件,不仅...
    99+
    2015-08-29
    mysql 基于mysql-proxy实现读写分离 数据库入门 数据库基础教程 数据库 mysql
  • 安装mysql-proxy实现mysql读写分离
    一. 环境描述操作系统版本:centos 7.2主服务器:192.168.0.72  node2从服务器:192.168.0.73  node3调度服务器MySQL-Proxy...
    99+
    2022-10-18
  • mysql-proxy实现读写分离脚本
    将以下脚本保存为/etc/init.d/mysql-proxy ,赋予权限chmod 755 /etc/init.d/mysql-proxy#!/bin/bash # # mysql-proxy&...
    99+
    2022-10-18
  • 使用mysql-proxy实现读写分离
    mysql-proxy实现MySQL读写分离 使用二进制格式的mysql-proxy的安装配置 mysql-proxy本身并不能进行读写分离,要实现读写分离要依赖于lua,所以要先查看是否安装了lua,...
    99+
    2022-10-18
  • 使用mysql-proxy实现mysql的读写分离
    TEST ...
    99+
    2022-10-18
  • MySQL读写分离amoeba&mysql-proxy
    ----主从同步介绍 refencen    https://www.cnblogs.com/lin3615/p/5684891.html 1. 读写分离方式 ...
    99+
    2022-10-18
  • MySQL 读写分离 (基于Amoeba)
    一.MySQL读写分离    主数据库处理事务性查询,从数据库处理select查询。数据库复制用来把事务性查询导致的变更同步到从数据库中。二.最为常见的读写分离有两种:1.基于...
    99+
    2022-10-18
  • 企业 - mysql 读写分离(proxy)
                     &...
    99+
    2022-10-18
  • mysql基于amoeba如何实现读写分离
    下文给大家带来关于mysql基于amoeba如何实现读写分离,感兴趣的话就一起来看看这篇文章吧,相信看完mysql基于amoeba如何实现读写分离对大家多少有点帮助吧。环境:    &n...
    99+
    2022-10-18
  • 基于 SpringBoot 实现 MySQL 读写分离的问题
    -     前言     - 首先思考一个问题: 在高并发的场景中,关于数据库都有哪些优化的手段? 常用的实现方法有以下几种:读写分离、加缓存、主从架构集...
    99+
    2022-05-21
    SpringBoot 实现 MySQL 读写分离 SpringBoot 读写分离
  • mysql主从基于docker和django实现读写分离
    目录1.主从搭建实操2.django实现读写分离settings.py配置手动指定读写分离自动指定(写router和配置setting)更细粒度(分库分表时需要)在数据库迁移时,可以指定把哪个app的表结构迁移到哪个库1...
    99+
    2022-08-25
  • 如何进行Mysql中的mysql-proxy读写分离
    本篇文章为大家展示了如何进行Mysql中的mysql-proxy读写分离,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。以配置文件的方式启动[root@host-19...
    99+
    2022-10-19
  • 关系型数据库之mysql-proxy实现读写分离
    简要:  mysql-proxy作为mysql测试项目,可以实现读写分离架构,具有开发能力的公司通过二次开发的方式去完善bug应用在生产环境中,下面我们通过案例使用mysql-proxy实现读写分...
    99+
    2022-10-18
  • MySQL Router实现MySQL的读写分离
    MySQL Router实现MySQL的读写分离 https://www.cnblogs.com/f-ck-need-u/p/9276639.html https://www.cnblogs.com...
    99+
    2022-10-18
  • mysql+mycat实现读写分离
    centos7 master slave mycat1.6 client 192.168.41.10 192.168.41.11 192.168.41.12 192.168.41.13 ...
    99+
    2022-10-18
  • amoeba:关于mysql的读写分离
    今天用amoeba做了次读写分离,下面总结下步骤:三台linux:1、192.168.1.213    用于做amoeba服务器2、192.168.1.184&nbs...
    99+
    2022-10-18
  • MyCAT实现MySQL的读写分离
    在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如...
    99+
    2022-10-18
  • 怎么实现mysql读写分离
    这篇文章主要介绍“怎么实现mysql读写分离”,在日常操作中,相信很多人在怎么实现mysql读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现mysql读写分离”...
    99+
    2022-10-19
  • Java基于JNDI怎么实现读写分离
    这篇文章主要介绍“Java基于JNDI怎么实现读写分离”,在日常操作中,相信很多人在Java基于JNDI怎么实现读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java基于JNDI怎么实现读写分离”的疑...
    99+
    2023-06-22
  • MySQL中间件proxysql实现MySQL读写分离
    1. Mysql实现读写分离的方式 mysql 实现读写分离的方式有以下几种: 程序修改mysql操作,直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助。 amoeba,直接实现读写分离和负载...
    99+
    2021-12-16
    MySQL中间件proxysql实现MySQL读写分离 数据库入门 数据库基础教程 数据库 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作