数据库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主从来实现读写分离 一、实现的功能 1、基于springboot框架,application.yml配置多个数据源,使用AOP以及AbstractRootingDataSource、ThreadLocal来实现多数据源切换,以实现读写分离。mysql...
Spring与MySQL读写分离** Spring作为一个灵活的Java应用程序框架,提供了多种方式来支持数据库的读写分离。通过配置数据源、事务管理器以及AOP(面向切面编程)等机制,Spring可以帮助我们透明地处理读写操作的路由...
常见的MySQL读写分离软件有MySQL Proxy、MaxScale、HAProxy、AMQP等。每款软件都有其特点和适用场景,比如MySQL Proxy轻量级但功能相对简单,MaxScale是MySQL公司官方出品,功能强大且易于集成,HAProxy则常用于网络...
在IT行业中,数据库读写分离...总之,通过SpringBoot实现MySQL读写分离,不仅提高了系统的可扩展性和稳定性,还降低了单点故障的风险。在实际项目中,需要根据业务需求和系统规模,灵活选择合适的技术方案和配置策略。
### 使用mysql-proxy实现MySQL读写分离 随着业务规模的不断扩大,数据库系统往往成为整个系统中的瓶颈之一。为了提高系统的响应速度以及数据处理能力,一种常用的技术手段就是采用**读写分离**的方式。读写分离的...
MySQL 读写分离实现原理和解决方案 MySQL 读写分离是指将数据库的读写操作分离到不同的服务器上,以提高数据库的性能和可用性。MySQL 读写分离可以通过主从复制实现,即一个主库和多个从库。主库负责写操作,从库...
本文将深入探讨如何利用Spring AOP(面向切面编程)实现应用层的MySQL读写分离,并结合一主多从的配置来进行详细讲解。 首先,我们需要理解MySQL的主从复制机制。在主从复制中,数据的写操作(INSERT、UPDATE、...
### MySQL读写分离及主从同步延时解决方案 #### 一、引言 在现代互联网应用中,随着用户量的增长和业务复杂度的提高,单一数据库服务器往往难以满足高并发场景下的性能需求。为了有效应对这种挑战,许多企业选择了...
基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL...
MySQL读写分离是一种数据库优化策略,它通过将数据库的读操作和写操作分离到不同的服务器上,以提高系统的并发处理能力和整体性能。在高流量的Web应用中,数据库经常成为性能瓶颈,读写分离可以有效地解决这个问题。...
### MySQL读写分离集群最佳实践 #### 一、概述 在现代互联网应用中,随着数据量的不断增长以及用户访问量的激增,单一数据库服务器往往难以满足高性能、高可用性的需求。为了应对这一挑战,一种常见的解决方案是...
在进行MySQL读写分离配置前,我们需要确保有一个稳定的环境。本次配置环境为CentOS 7.2,并使用MySQL 5.7版本。 - **主数据库服务器(Master)**:192.168.206.100 - **从数据库服务器(Slave)**:192.168.206.200...
mysql读写分离 中间件amoeba配置文件配置号的改几个参数就可以直接用https://blog.csdn.net/z13615480737/article/details/79951505 参考这个改2个文件就可直接用
### MySQL读写分离实现 #### 一、MySQL读写分离概述 MySQL的读写分离是一种常用的数据库优化技术,主要用于提高数据库系统的并发处理能力和可用性。它通过将数据查询(读操作)与数据更新(写操作)分布在不同的...
在linux下用于部署读写分离的中间件maxscale。它是实现mysql数据库的读写分离的
基于Mycat实现Mysql读写分离以及分库分表详解 本文档详细介绍了基于Mycat实现Mysql读写分离以及分库分表的技术,涵盖了Mycat安装、配置、读写分离、分库分表等多方面的知识点。 一、读写分离 Mycat读写分离是指将...
构建高性能web之路mysql读写分离实战 本文将详细介绍如何构建高性能的Web应用程序之路的MySQL读写分离实战。读写分离是MySQL高性能解决方案之一,将读写操作分离到不同的数据库服务器上,以提高数据库的性能和可...
本教程将通过一系列视频和文档,详细讲解如何在MySQL环境中实现读写分离。 首先,我们来看“11-主从复制的原理.avi”。主从复制是实现读写分离的基础,它是指在一个MySQL集群中,一个节点(主节点)负责数据的写入...
MySQL主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy/Amoeba)来提升数据库的并发负载能力 这样的方案来进行部署与实施的