Mysql数据库的读写分离
读写分离,即在主数据库中进行写操作(也可以进行增、删、改操作),在从数据库中进行读操作。在正常情况下,我们对主数据库进行的是增、删、改、查操作,数据库的写入时间比较长,而查询时间短,所以为了提高数据库的效率,我们把读写分离开来。
一、数据库读写分离的配置
环境:redhat 6.5
server2 master
server3 slave
server4 mysql-proxy (调度器)
1、在server2和server3中实现gtid的主从复制(可以仿照之前的博客。完成gtid的主从复制)
2、在server4中安装mysql-proxy
1)首先解压mysql-proxy包
---> tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local/ # 解压在固定目录
---> cd /usr/local/
---> mv mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy # 进行重命名
2)修改读写分离的配置文件
---> cd /usr/local/mysql-proxy
---> mkdir conf # 在mysql-proxy目录下创建conf目录,存放配置文件
---> mkdir logs # 创建logs目录,存放日志文件
---> cd /usr/local/mysql-proxy/share/doc/mysql-proxy # 修改读写分离配置文件
---> vim rw-splittind.lua # 该文件为lua脚本,表示连接数超过2开始读写分离
---> vim /usr/local/mysql-proxy/conf/mysql-proxy.conf # 编辑mysql-proxy的配置文件
[mysql-proxy]
user=root # proxy运行的用户
keepalive=true # 崩溃时,尝试重启
daemon=true # 以守护进程方式运行
log-level=debug # 定义log日志级别,由高到低分别有(error|warning|info|message|debug)
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log # 日志位置
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua # 读写分离配置脚本
proxy-read-only-backend-addresses=172.25.2.3:3306 # 指定后端主slave读数据
proxy-backend-addresses=172.25.2.2:3306 # 指定后端主master写入数据
proxy-address=0.0.0.0:3306 # proxy监听本机所有接口
---> chmod 660 mysql-proxy.conf # 修改配置文件的执行权限
3)启动mysql-proxy服务
---> /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf
---> px -ax # 查看启动的服务进程
4)在server2(master)中对某个用户授权读和插入权限
mysql> grant all on *.* to root@'%' identified by 'Xniu+123';
5)在测试机中测试。通过调度器server4来连接数据库
6)在server2和server3中安装lsof,来查看数据库的连接情况
---> yum install -y lsof
---> lsof -i :3306 # 查看3306端口连接情况
server2:(由于刚开始只连接了一次,使用的是master主机)
server3:(此时是server3到server2,是主从问题)
7)当我们在测试机中第三次连接数据库的时候,会出现读写分离的情况(在server2中写,server3中读)。
server2:
server3:
# 在真机中插入一条数据的时候,在master可以看到的话,说明写操作在server2中。若是slave中看到插入的数据,不能说明写操作在srver3中,因为server2和server3是主从关系。
server4:插入数据
server2:查看数据
Mysql数据库的读写分离的更多相关文章
- 利用oneproxy部署mysql数据库的读写分离
实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 oneproxy-rhel ...
- 如何轻松实现MySQL数据库的读写分离和负载均衡?
配置好了 Mysql 的主从复制结构后,我们希望实现读写分离,把读操作分散到从服务器中,并且对多个从服务器能实现负载均衡.读写分离和负载均衡是 Mysql 集群的基础需求,MaxScale 就可以帮着 ...
- 利用mysql-proxy进行mysql数据库的读写分离
实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 mysql-proxy-0 ...
- 基于amoeba实现mysql数据库的读写分离/负载均衡
一.Amoeba的简述:[来自百度百科] Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的规则,将SQL请 ...
- docker-compose.yml样例(mysql主从+mycat读写分离)
Docker-compose.yml文件示例 1.mysql主从复制的docker-compose.yml文件 # cat docker-compose.yml version: '2' # 这个ve ...
- MySQL搭建主从数据库 实现读写分离
首先声明,实际生产中,网站为了提高用户体验,性能等,将数据库实现读写分离是有必要的,我们让主数据库去写入数据,然后当用户查询的时候,然后在从数据库读取数据,故能减轻数据库的压力,实现良好的用户体验! ...
- 使用mysql proxy对数据库进行读写分离
服务器安排如下: 192.168.100.128 主 192.168.100.129 从 192.168.100.130 mysql-proxy 1.在100.130中下载安装mysql-proxy ...
- Mysql主从复制,读写分离(mysql-proxy),双主结构完整构建过程
下面介绍MySQL主从复制,读写分离,双主结构完整构建过程,不涉及过多理论,只有实验和配置的过程. Mysql主从复制(转载请注明出处,博文地址:) 原理是master将改变记录到二进制日志(bina ...
- MySQL + Atlas --- 部署读写分离
阅读目录 1. 数据库用户配置 2. 主从数据库连接 3. Atlas配置 4. 读写分离测试 序章 Atlas是360团队弄出来的一套基于MySQL-Proxy基础之上的代理,修改了MySQL-Pr ...
随机推荐
- 【eclipse】删除工作空间
- 【Coursera】Internet History 小结
前言 终于看完了接近一半课程的 History 的内容. 在这两周的时间里面,了解了互联网的起源,发展,以及现在互联网的情况.听了许多故事,有让人会心一笑的,也有令人感慨万千的.见到了许多令人景仰的科 ...
- windows与kali双系统安装基本教程
以前写过一篇在虚拟机中安装kali的基本教程的文章,那时候的kali还是1.0时代,现如今已经kali2.0了,在虚拟机中运行kali还是会受到性能的影响,所以还是装到自己电脑上跑起来最爽.当然如果你 ...
- WM_COPYDATA
1. WM_COPYDATA : https://msdn.microsoft.com/en-us/library/windows/desktop/ms649011(v=vs.85).aspx COP ...
- Flutter学习笔记(二)
*.assets 当引用图片的时候,需要在pubspec.yaml的文件中的flutter下添加assets,类似于下面的样子: image.png 这里需要注意的是文件里的assets只要一个缩进即 ...
- Use a layout_width of 0dip instead of fill_parent for better performance
安装了最新的ATD 18之后,新加的Lint Warnings插件会给我们检测出许多xml布局中不当的地方,例如: Use a layout_width of 0dip instead of fill ...
- JS中Ajax的同步和异步
ajax同步 : 意味着此时请求Server后,JS代码不再继续执行,等待Server返回后才继续往下执行. ajax异步 : 意味着此时请求Server后,JS代码继续执行,不管Server什么时候 ...
- getpagesize.c:32: __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0' failed
为arm 编译 mysql , 执行的时候出现了这个问题. 好像是个bug, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626379 重新编译 ...
- codeforces 1042c// Array Product// Codeforces Round #510(Div. 2)
题意:给出一个数组,2种操作:.1:x*y然后x消失,2:除掉x(2操作最多只能进行一次).问最大的结果的一种操作方式.逻辑题,看能不能想全面. 1先数好0,正,负的数量,zero,pos,neg.如 ...
- AC自动机技巧
AC自动机技巧 可以用树上的一些算法来进行优化 对于要求支持插入和删除字符串的题目,可以通过建两个AC自动机,查询的时候作差来实现. 当给出的查询串是一个含有空格的文本时,可以用特殊字符(比如'z'+ ...