mysql系列之------读写分离

一、前言:读写分离的基本原理

   mysql的读写分离的基本原理是:让master(主数据库)来响应事务性操作,

让slave(从数据库)来响应select非事务性操作,

然后再采用主从复制来把master上的事务性操作同步到slave数据库中。实现简单的负载均衡。

二、前期准备工作:

1、准备两台服务器,我这里准备的是192.168.4.122(主),192.168.4.123(从)

  另外准备一台服务器安装中间件服务器(192.168.4.125)

2、首先把两台服务器做好主从同步。

3、准备读写分离的软件:maxscale-2.1.2-1(中间件)

三、maxscale安装和配置(4.125)

1、安装:rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm

2、修改配置文件:vim /etc/maxscale.cnf

 54-60行注释掉,87-91注释掉

  10   threads=auto

  18 [server1]

   19 type=server

   20 address=192.168.4.122

   21 port=3306

   22 protocol=MySQLBackend

   23 [server2]

   24 type=server

   25 address=192.168.4.123

   26 port=3306

   27 protocol=MySQLBackend

  35 [MySQL Monitor]    //监视数据库的配置

   36 type=monitor

   37 module=mysqlmon

   38 servers=server1, server2

   39 user=scalemon  //监控

   40 passwd=123456

   41 monitor_interval=10000

 63 [Read-Write Service]    //配置查询读写权限的帐号

   64 type=service

   65 router=readwritesplit

   66 servers=server1, server2

   67 user=maxscale //接收客户端连接请求时,连接的用户名和密码在数据库服务上是否存在

   68 passwd=123456

   69 max_slave_connections=100%

   104 port=4010

3、在主库(4.122)上添加上面需要的两个授权用户

grant replication slave,replication client on . to [email protected]‘%‘ identified by "123456";

grant select on mysql.* to [email protected]‘%‘ identified by "123456";

4、启动服务:maxscale -f /etc/maxscale.cnf

  停止服务:ps -C   maxscale(查进程)        kill -9 13109(杀进程)

 查看服务是否启动:netstat -natulp | grep maxscale

5、在主库(4.122)上添加用于客户端连接服务器的用户名

 grant  all  on  *.*   to [email protected]‘%‘ identified by ‘123456‘;

6、在4.125上:maxadmin -P4010 -uadmin -pmariadb //访问控制后台

list servers    //显示所有服务器主机,可以看到服务器的运行信息

7、用宿主机做客户端连接中间件的登陆方法:

mysql -h192.168.4.125 -P4006 -utest -p123456

8、测试方法:当从挂掉后,客户端可写可读;

 但是当主挂掉后,客户端不可读不可写

原文地址:https://blog.51cto.com/14421632/2415094

时间: 2024-10-13 06:52:00

mysql系列之------读写分离的相关文章

mysql主从复制与读写分离

MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部

MySQL主从复制、读写分离、高可用集群搭建

MySQL主从复制.读写分离.高可用集群搭建  一.服务介绍   1.1 Keepalived     Keepalived,见名知意,即保持存活,其目的是解决单点故障,当一台服务器宕机或者故障时自动切换到其他的服务器中.Keepalived是基于VRRP协议实现的.VRRP协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成虚拟设备,可以对外提供虚拟路由器IP(一个或多个),即漂移IP(VIP). 1.2 ProxySQL ProxySQL是一个高性能,高可用性的MySQL

Amoeba+Mysql实现数据库读写分离

一.Amoeba 是什么 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发.座落与Client.DB Server(s)之间.对客户端透明.具有负载均衡.高可用性.sql过滤.读写分离.可路由相关的query到目标数据库.可并发请求多台数据库合并结果. 主要解决: ? 降低 数据切分带来的复杂多数据库结构 ? 提供切分规则并降低 数据切分规则 给应用带来的影响 ? 降低db 与客户端的连接数 ? 读写分离 二.为什么要用Amoeba 目前要实现mysql的主从读写分离,主要有以下

Mysql主从配置+读写分离(转)

   MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 注:安装前须查看是否已经安装了如下依赖包,如果没有请安装. apt-get -y install gcc g++ libncurses5-dev ncurses-devel openssl 一.主库安装及配置 1.源码安装cmake # tar xf cmake-3.0.0.tar.gz # cd cmake-3.0.0 # .

SqlServer 并发系列之读写分离

数据库处理高并发两种方式 垂直和水平 区分 垂直区分[分布式数据库]: 按模块独立出单独数据库. 缺点:对系统各个模块设计要较高要求,高内聚低耦合,改造难度较大. 同时如果数据达到一个新的临界点,还是会存在访问性能低下的可能,比如一个订单数据库,订单数量达到1000万单. 水平区分[读写分离]: 剑圣分身的方式,分为 主数据库(真身)和多个查询数据库(镜像),主数据库承担 增删改和实时性查询 功能, 查询服务器承担带条件的大数据量的查询. 读写分离好处1.将读和写操作分离到不同的数据库服务器上.

Mysql 主从复制,读写分离

Mysql 主从复制及读写分离 特别推荐看:amoeba.xml 的配置部分,在百度上看了很多配置都不完整,是我测试时的痛点 实验的目的: 有两部分:第一实现Mysql主从复制,第二实现读写分离. 下面是实验的环境: 192.168.58.11     安装了amoeba 的节点 192.168.58.16      master    系统:rhel 5.4 192.168.58.12      slave     系统: rhel 5.4 192.168.58.11      代理     

Mysql的主从复制读写分离--简单篇

Mysql基础拓扑图: Mysql环境准备: 一台mysql主服务器(安装mysql) 两台mysql从服务器(安装mysql) 一台mysql代理(安装amoeba和java) 一台mysql客户端(mysql客户端) 部署前先关闭所有的iptables,selinux Mysql的主从复制读写分离所需安装包: cmake-2.8.6.tar.gz mysql-5.5.22.tar.gz amoeba-mysql-binary-2.2.0.tar.gz jdk-7u65-linux-x64.t

docker-compose.yml样例(mysql主从+mycat读写分离)

Docker-compose.yml文件示例 1.mysql主从复制的docker-compose.yml文件 # cat docker-compose.yml version: '2' # 这个version是指dockerfile解析时用的版本,不是给我们自己定义版本号用的. services: m1: # master build: ./master # ./master文件下需要有Dockerfile文件,并且build属性和image属性不能一起使用 container_name: m

利用oneproxy部署mysql数据库的读写分离

实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 oneproxy-rhel5-linux64-v5.6-ga 下载地址:http://pan.baidu.com/s/1jGpL2o2 实验拓扑: 注意:本实验是之前mysql-proxy实验的拓展,因此大部分环境及设定是相同的,其中一.二步这里不再重复,具体请参考:利用mysql-proxy进行mysql数据库的读写分离