`
Tzhennan
  • 浏览: 58153 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL 读写分离

 
阅读更多

数据库Master主服务器:172.17.0.2

数据库Slave从服务器:172.17.0.3

MySQL-Proxy调度服务器:172.17.0.4

 

#MySQL的安装与配置

...

 

#编译安装lua

MySQL-Proxy的读写分离主要是通过rw-splitting.lua脚本实现的,因此需要安装lua

下载地址:http://www.lua.org/download.html

$ curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz

$ tar zxf lua-5.3.4.tar.gz

$ cd lua-5.3.4

$ make linux test

$ make install

 

#安装配置MySQL-Proxy

下载地址:https://downloads.mysql.com/archives/proxy/

$ tar –zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz

$ mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy

 

 

#配置mysql-proxy,创建主配置文件

$ cd /usr/local/mysql-proxy

$ mkdir lua #创建lua脚本存放目录

$ mkdir logs #创建日志目录

$ cp share/doc/mysql-proxy/rw-splitting.lua ./lua #复制读写分离配置文件

$ cp share/doc/mysql-proxy/admin-sql.lua ./lua #复制管理脚本

 

#修改读写分离配置文件

$ vim rw-splitting.lua

--- config

--

-- connection pool

if not proxy.global.config.rwsplit then

        proxy.global.config.rwsplit = {

                min_idle_connections = 1, //默认超过4个连接数时,才开始读写分离,改为1

                max_idle_connections = 1, //默认为8

 

                is_debug = false

        }

end

#修改完成后,启动mysql-proxy

$ cd /usr/local/mysql-proxy/bin

$ ./mysql-proxy --proxy-read-only-backend-addresses=172.17.0.3:3306 --proxy-backend-addresses=172.17.0.2:3306 --proxy-lua-script=/usr/local/mysql-proxy/rw-splitting.lua --log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log --log-level=info &

解释:

proxy-read-only-backend-addresses=172.17.0.3 #指定后端从slave读取数据

proxy-backend-addresses=172.17.0.2 #指定后端主master写入数据

proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定读写分离配置文件位置

admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理脚本

log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置

log-level=info #定义log日志级别,由高到低分别有(error|warning|info|message|debug)

 

#查看状态

$ lsof -i :4040

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

mysql-pro 788 root    9u  IPv4  65474      0t0  TCP *:yo-main (LISTEN)

 

#创建用于读写分离的数据库连接用户

登陆主数据库服务器172.17.0.2,通过命令行登录管理MySQL服务器

$ mysql -u root -p

mysql> GRANT ALL ON *.* TO mysqlproxy@172.17.0.4 IDENTIFIED BY '123456';

mysql> flush privileges;

由于我们配置了主从复制功能,因此从数据库服务器172.17.0.3上已经同步了此操作。

为了清晰的看到读写分离的效果,需要暂时关闭MySQL主从复制功能

登陆从数据库服务器172.17.0.3,通过命令行登录管理MySQL服务器

$ mysql -u root -p

关闭Slave同步进程

mysql> stop slave;

 

#连接MySQL-Proxy

#通过navicate连接,截图如下:



 

登录成功后,插入数据,发现数据并没有插入成功,然后分别去主库和从库查看,主库数据新增成功,从库数据没有变化。

#通过命令行

$ mysql -h172.17.0.4 -P4040 -umysqlproxy -p123456

分享到:
评论

相关推荐

    springboot+mysql读写分离

    springboot结合mysql主从来实现读写分离 一、实现的功能 1、基于springboot框架,application.yml配置多个数据源,使用AOP以及AbstractRootingDataSource、ThreadLocal来实现多数据源切换,以实现读写分离。mysql...

    spring mysql 读写分离

    Spring与MySQL读写分离** Spring作为一个灵活的Java应用程序框架,提供了多种方式来支持数据库的读写分离。通过配置数据源、事务管理器以及AOP(面向切面编程)等机制,Spring可以帮助我们透明地处理读写操作的路由...

    mysql 读写分离软件

    常见的MySQL读写分离软件有MySQL Proxy、MaxScale、HAProxy、AMQP等。每款软件都有其特点和适用场景,比如MySQL Proxy轻量级但功能相对简单,MaxScale是MySQL公司官方出品,功能强大且易于集成,HAProxy则常用于网络...

    springboot 实现mysql读写分离

    在IT行业中,数据库读写分离...总之,通过SpringBoot实现MySQL读写分离,不仅提高了系统的可扩展性和稳定性,还降低了单点故障的风险。在实际项目中,需要根据业务需求和系统规模,灵活选择合适的技术方案和配置策略。

    使用mysql-proxy实现mysql读写分离

    ### 使用mysql-proxy实现MySQL读写分离 随着业务规模的不断扩大,数据库系统往往成为整个系统中的瓶颈之一。为了提高系统的响应速度以及数据处理能力,一种常用的技术手段就是采用**读写分离**的方式。读写分离的...

    MySQL读写分离

    MySQL 读写分离实现原理和解决方案 MySQL 读写分离是指将数据库的读写操作分离到不同的服务器上,以提高数据库的性能和可用性。MySQL 读写分离可以通过主从复制实现,即一个主库和多个从库。主库负责写操作,从库...

    spring之mysql读写分离

    本文将深入探讨如何利用Spring AOP(面向切面编程)实现应用层的MySQL读写分离,并结合一主多从的配置来进行详细讲解。 首先,我们需要理解MySQL的主从复制机制。在主从复制中,数据的写操作(INSERT、UPDATE、...

    突破Java面试(50)-MySQL读写分离及主从同步延时解决方案.docx

    ### MySQL读写分离及主从同步延时解决方案 #### 一、引言 在现代互联网应用中,随着用户量的增长和业务复杂度的提高,单一数据库服务器往往难以满足高并发场景下的性能需求。为了有效应对这种挑战,许多企业选择了...

    基于SpringBoot,来实现MySQL读写分离技术.zip

    基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL...

    mysql读写分离

    MySQL读写分离是一种数据库优化策略,它通过将数据库的读操作和写操作分离到不同的服务器上,以提高系统的并发处理能力和整体性能。在高流量的Web应用中,数据库经常成为性能瓶颈,读写分离可以有效地解决这个问题。...

    MySQL读写分离集群最佳实践

    ### MySQL读写分离集群最佳实践 #### 一、概述 在现代互联网应用中,随着数据量的不断增长以及用户访问量的激增,单一数据库服务器往往难以满足高性能、高可用性的需求。为了应对这一挑战,一种常见的解决方案是...

    mysql读写分离配置

    在进行MySQL读写分离配置前,我们需要确保有一个稳定的环境。本次配置环境为CentOS 7.2,并使用MySQL 5.7版本。 - **主数据库服务器(Master)**:192.168.206.100 - **从数据库服务器(Slave)**:192.168.206.200...

    mysql读写分离amoeba配置文件

    mysql读写分离 中间件amoeba配置文件配置号的改几个参数就可以直接用https://blog.csdn.net/z13615480737/article/details/79951505 参考这个改2个文件就可直接用

    mysql读写分离实现

    ### MySQL读写分离实现 #### 一、MySQL读写分离概述 MySQL的读写分离是一种常用的数据库优化技术,主要用于提高数据库系统的并发处理能力和可用性。它通过将数据查询(读操作)与数据更新(写操作)分布在不同的...

    mysql读写分离的中间件

    在linux下用于部署读写分离的中间件maxscale。它是实现mysql数据库的读写分离的

    基于Mycat实现Mysql读写分离以及分库分表.doc

    基于Mycat实现Mysql读写分离以及分库分表详解 本文档详细介绍了基于Mycat实现Mysql读写分离以及分库分表的技术,涵盖了Mycat安装、配置、读写分离、分库分表等多方面的知识点。 一、读写分离 Mycat读写分离是指将...

    构建高性能web之路mysql读写分离实战

    构建高性能web之路mysql读写分离实战 本文将详细介绍如何构建高性能的Web应用程序之路的MySQL读写分离实战。读写分离是MySQL高性能解决方案之一,将读写操作分离到不同的数据库服务器上,以提高数据库的性能和可...

    实现mysql读写分离+使用视频

    本教程将通过一系列视频和文档,详细讲解如何在MySQL环境中实现读写分离。 首先,我们来看“11-主从复制的原理.avi”。主从复制是实现读写分离的基础,它是指在一个MySQL集群中,一个节点(主节点)负责数据的写入...

    MySQL读写分离架构与实践--mysql-proxy

    MySQL主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy/Amoeba)来提升数据库的并发负载能力 这样的方案来进行部署与实施的

Global site tag (gtag.js) - Google Analytics