MysqL读写分离的实现-Mysql proxy中间件的使用
为什么要架设读写分离,这里不做多余的说明,想了解具体原理,请百度或者参考其他帖子。在这里只做大概的配置说明,测试中使用三台服务器
192.168.136.142 主服务器
192.168.136.143 从服务器
192.168.136.144 中间服务器
解压安装的方式安装
https://downloads.mysql.com/archives/proxy/,安装Mysql proxy 需要确保服务器安装过lua,因为Mysql依赖于lua5.1以上版本,rpm -q lua,看看是否安装,还依赖libevent,这里我选择的还是0.83版本,比较稳定。mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz
在中间服务器 下载完成之后,解压并移动目录
tar -zxvf mysql-proxy-0.8.-linux-glibc2.-x86-64bit
mv ./mysql-proxy-0.8.-linux-glibc2.-x86-64bit /usr/local/mysql-proxy/
进入/usr/local/mysql-proxy目录,创建脚本存放目录和日志目录,并把解压目录后的相关文件拷贝到对应目录。
cd /usr/local/mysql-proxy
mkdir lua #创建脚本存放目录
mkdir logs #创建日志目录
cp share/doc/mysql-proxy/rw-splitting.lua ./lua #复制读写分离配置文件
cp share/doc/mysql-proxy/admin-sql.lua ./lua #复制管理脚本
然后在中间服务器配置一个mysql-proxy启动配置文件,并赋予执行权限,chmod 660 /etc/mysql-porxy.cnf
vi /etc/mysql-proxy.cnf #创建配置文件
//内容在下
[mysql-proxy]
user=root #运行mysql-proxy用户
admin-username=pro #主从mysql共有的用户
admin-password=pro123 #用户的密码
proxy-address=192.168.136.144: #mysql-proxy运行ip和端口,不加端口,默认4040
proxy-read-only-backend-addresses=192.168.136.143 #指定后端从slave读取数据
proxy-backend-addresses=192.168.136.142 #指定后端主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),调试的时候建议debug
daemon=true #以守护进程方式运行
keepalive=true #mysql-proxy崩溃时,尝试重启
这里编辑一个脚本,用于快速启动mysql-proxy,并赋予执行权限
vim /etc/profile.d/mysql-proxy.sh
//内容在下
export PATH=$PATH:/usr/local/mysql-proxy/bin/
chmod 660 /etc/mysql-porxy.cnf
执行以下命令查看帮助参数
修改读写分离配置文件
vim /usr/local/mysql-proxy/lua/rw-splitting.lua
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = , #默认超过4个连接数时,才开始读写分离,改为1
max_idle_connections = , #默认8,改为1
is_debug = false
}
end
启动服务
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
查看和关闭服务命令如下
netstat -tupln | grep #已经启动
killall - mysql-proxy #关闭mysql-proxy使用
接下来还需要在主服务器授权,在主服务器创建proxy用户用于mysql-proxy使用,从服务器也会同步这个操作
mysql> grant all on *.* to 'pro'@'192.168.136.144' identified by 'pro123';
接下来使用客户端连接中间服务器,并测试读写
mysql -u pro -h 192.168.136.144 -P -p pro123
测试读写成功了,这里不做说明了
MysqL读写分离的实现-Mysql proxy中间件的使用的更多相关文章
- Mysql读写分离方案-MySQL Proxy环境部署记录
Mysql的读写分离可以使用MySQL Proxy和Amoeba实现,其实也可以使用MySQL-MMM实现读写分离的自动切换.MySQL Proxy有一项强大功能是实现"读写分离" ...
- MaxScale:实现MySQL读写分离与负载均衡的中间件利器
1. MaxScale 是干什么的? 配置好了 MySQL 的主从复制结构后,我们希望实现读写分离,把读操作分散到从服务器中,并且对多个从服务器能实现负载均衡. 读写分离和负载均衡 是MySQL集群的 ...
- mysql读写分离的解决方案
来源于网上整理 http://yanwt.iteye.com/blog/1460780 现有三种解决方式实现mysql读写分离 1 程序修改mysql操作类 优点:直接和数据库通信,简单快捷的读写分离 ...
- mysql读写分离——中间件ProxySQL的简介与配置
mysql实现读写分离的方式 mysql 实现读写分离的方式有以下几种: 程序修改mysql操作,直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助. am ...
- Mysql读写分离-Amoeba Proxy
参考:http://www.linuxidc.com/Linux/2015-10/124115.htm 一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database pr ...
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变
[Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...
- mysql中间件proxysql实现mysql读写分离
目录 1. mysql实现读写分离的方式 2. ProxySQL简介 3. ProxySQL安装 4. ProxySQL的Admin管理接口 5. 和admin管理接口相关的变量 5.1 admin- ...
- 基于MYCAT中间件实现MYSQL读写分离
基于mycat实现mysql读写分离 完成主从复制的配置 /* 主节点:192.168.47.101 从节点:192.168.47.102 */ /*mycat为同一网段客户端*/ /* 修改主节点基 ...
- amoeba实现MySQL读写分离
amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为19 ...
随机推荐
- 如何通过命令或脚本方式在Windows上访问linux系统
很多情况下,我们需要在Windows上写脚本,创建计划任务程序,这个过程中可能需要访问linux系统,执行脚本或者上传下载文件.并且我们也不想在Windows上安装什么东西.那最好的办法就是使用put ...
- 理解maven的核心概念
原文出处:http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html 好久没进行java方面的开发了,最近又完成了一个java相关的 ...
- android 弹起键盘把ui顶上去的解决办法
键盘输入框上面的ui布局必须为Relative相对布局.然后设置 <activityandroid:name=".activity.HomeActivity"Android: ...
- 【转】TCHAR
TCHAR 就是当你的字符设置为什么就是什么例如: 当程序编译为 ANSI, TCHAR 相当于 CHAR当程序编译为 UNICODE, TCHAR 相当于WCHAR char ...
- iOS页面切换动画实现方式。
iOS页面切换动画实现方式. 1.使用UIView animateWithDuration:animations:completion方法 Java代码 [UIView animateWithDura ...
- Java自学能学会吗?最新Java高级学习路线
就好像一千个人心中有一千个哈利波特一样,这个答案不绝对也不唯一,Java好学但自学的确阻力有些大,作为一门技术语言,它所蕴含的智慧绝对不是靠几本XX入门,XX框架之类的书所能概括,自学Java你要做好 ...
- 小z的袜子
传送门 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只袜子从 ...
- sizeof和strlen的使用
sizeof和strlen的使用 1. sizeof 其值在编译时就计算好了,所以不能用来返回动态分配的内存空姐的大小. 当参数为下面内容是,所表达的含义: 数组——编译时分配的数组空间大小: 指针— ...
- DBCP和C3P0使用--未完善
一.前言: DBCP和C3PO都可以作为数据连接池, 二. 导入jar包: 三.配置applicationContext.xml文件 配置dbcp <!-- 创建数据源 --> <b ...
- jQuery的属性,事件及操作
1.属性操作 1.1 基本属性操作 $("img").attr("src") 返回文档中所有图像的src属性值 $("img").attr( ...