简介

MySQL Router是处于应用client和dbserver之间的轻量级代理程序,它能检测,分析和转发查询到后端数据库实例,并把结果返回给client,是mysql-proxy的一个替代品

Router可以实现读写分离,程序不是直接连接数据库IP,而是固定连接到mysql router,MySQL Router对前端应用是透明的,应用程序把MySQL Router当作是普通的mysql实例,把查询发给MySQL Router,而MySQL Router会把查询结果返回给前端的应用程序

当从数据库服务器故障时,业务也可以正常运行,MySQL Router可实现自动下线不可用服务器,程序配置不需要任何修改

若主数据库发生故障,由MySQL Router来决定主从自动切换,业务同样可以正常访问,程序配置不需要做任何修改

读写分离(Read/Write Splitting)

让一部分数据库服务器处理事务性增、改、删操作(INSERT、UPDATE、DELETE),另一部分数据库服务器处理SELECT查询操作

前期准备

准备四台Centos7虚拟机,配置IP地址和hostname,关闭seLinux和防火墙,同步系统时间,修改IP地址和hostname映射

ip

hostname

部署服务

192.168.29.132

master

mysql

192.168.29.138

bak1

mysql

192.168.29.131

bak2

mysql

192.168.29.133

mid

mysql mysql-router

四台虚拟机部署mysql服务

[[email protected] ~]# yum install mysql-server mysql -y

[[email protected]~]# yum install mysql-server mysql -y

[[email protected]~]# yum install mysql-server mysql -y

[[email protected] ~]# yum install mysql-server mysql -y

mid结点部署mysql-router

从官网下载rpm包

[[email protected] ~]# yum localinstall mysql-router-community-8.0.21-1.el7.x86_64.rpm -y

master结点和两个bak结点配置主从复制

详细配置步骤可参考:https://blog.51cto.com/14832653/2500735

启动MySQL服务

[[email protected] ~]# systemctl start mysqld

[[email protected]~]# systemctl start mysqld

[[email protected]~]# systemctl start mysqld

[[email protected] ~]# systemctl start mysqld

配置mysql-router

[[email protected] ~]# vi /etc/mysqlrouter/mysqlrouter.conf

#添加高可用标签,配置master结点为写结点

[routing:failover]

bind_address = 0.0.0.0

bind_port = 7001

max_connections = 1024

mode = read-write

#实际MySQL地址

destinations = 192.168.29.132:3306

#轮询标签,从库进行负载均衡的轮询访问

[routing:balancing]

bind_address = 0.0.0.0

bind_port = 7002

max_connections = 1024

mode = read-only

#实际MySQL地址

destinations = 192.168.29.138:3306,192.168.29.131:3306

启动服务

[[email protected] ~]# systemctl start mysqlrouter.service

测试验证

查看服务情况

[[email protected] ~]# netstat -tnlp |grep mysql

tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN 32715/mysqlrouter

tcp 0 0 0.0.0.0:7002 0.0.0.0:* LISTEN 32715/mysqlrouter

测试连接主库

[[email protected] ~]# mysql -u root -h 192.168.29.133 -p -P 7001

#master结点查看连接情况

mysql>select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;

+-----------+----------+

| ip | count(*) |

+-----------+----------+

| mid | 1 |

+-----------+----------+

测试从库负载均衡

[[email protected] ~]# mysql -u root -h 192.168.29.133 -p -P 7002

#bak1结点查看情况

mysql>select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;

+-----------+----------+

| ip | count(*) |

+-----------+----------+

| mid | 1 |

+-----------+----------+

#再次连接

[[email protected] ~]# mysql -u root -h 192.168.29.133 -p -P 7002

#bak2结点查看情况

mysql>select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;

+-----------+----------+

| ip | count(*) |

+-----------+----------+

| mid | 1 |

+-----------+----------+

mysql router 多台写入_Centos7部署MySQL-router实现读写分离及从库负载均衡相关推荐

  1. mysql从 lvs_linux keepalived+LVS 实现mysql 从库负载均衡

    前情提要: 参考链接: http://www.osyunwei.com/archives/7464.html ps:以上为本次操作的主要参考资料,非常感谢此文作者的贡献,我的随笔的主要目的是 说明在使 ...

  2. mysql数据库的pxc工具_CentOS7 下 MySQL 数据库 PXC 集群部署操作指导

    背景 最近在进行 MySQL 的 PXC 集群搭建使用和研究 前期已完成了一篇记录文章 : [CentOS7 下 MySQL 之 PXC 集群部署[Docker+多机多节点]] 但是,毕竟不是所有人都 ...

  3. mysql主从同步linux,linux中部署mysql主从同步示例详解(绝对经典,看了必会)

    准备两台服务器并安装MySQL5.7 master服务器 192.168.254.132 slave服务器 192.168.254.136 确保两台服务器安装的mysql版本一致,本测试使用的是mys ...

  4. MySQL从服务器写入报错吗_MySQL主从复制读写分离及奇怪的问题

    联系邮箱:hi@jackcool.net 一直都没有写blog的习惯,以前总觉得自己的脑子就是最好的记忆容器,现在觉得我好像有个假脑子. 当时是使用阿里云镜像,安装了两台ECS,结果配置MySQL的时 ...

  5. mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer

    *************************************************************************** 部署MySQL自动化运维工具inception+ ...

  6. ubuntu mysql集群搭建_ubuntu server部署mysql集群

    简介 [说明本次部署的内容,目的等等] 本部署文档的目的是如何在ubuntu server上进行mysql的群集部署. 前期准备 在进行本文档操作前,需要完成如下前期步骤: 1.安装3台ubuntu ...

  7. mysql拒绝访问root用户_Linux部署MySql数据库(超简单)

    MySQL:5.7.31(免安装包 直接命令下载)) 本示例中,MySQL相关安装路径说明如下: 配置文件:/etc/my.cnf 数据存储:/var/lib/mysql 命令文件:/usr/bin和 ...

  8. mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区

    转载:https://www.cnblogs.com/alvin_xp/p/4162249.html 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层 ...

  9. Mycat实现Mysql的一主一从和双主双从读写分离

    前提是: 已经有了一主一从的Mysql服务架构. 已经安装启动好了mycat.并对mycat有一定了解. 实现 修改mycat的schema配置文件: <!--schema 标签用于定义 MyC ...

最新文章

  1. R语言画形状—直线、矩形、多边形等
  2. 使用turtlebot来实现多点导航跟踪的问题
  3. 出现An App ID with Identifier 'com.XXX.XXX’ is not available. Please enter a different string.
  4. mysql设置常用——修改大小写、设置sql_mode不支持功能、
  5. 在RHEL7.8上安装配置tomcat
  6. 【tensorflow-keras-GRU】keras.layers.GRU 门限循环单元网络(Gated Recurrent Unit)
  7. C++(STL):33---hash_set、hash_map、hash_multiset、hash_multimap源码剖析
  8. oracle磁盘组故障组的概念,ASM中理解的问题大家帮忙!!(asm的外部冗余,为什么也有故障组呢?)...
  9. else应输入一个语句是什么意思_Python学习基础篇 -4: Python中的转弯---分支语句
  10. 更为简单的Ctrl+S自动刷新浏览器工具-LinrF5
  11. 微信自定义菜单java_使用Java语言开发微信公众平台(八)——自定义菜单功能
  12. 关于spring+springMVC+myBatis的一些基础配置以及整合
  13. j2ee,ajax中文乱码解决方法。。
  14. orcale库表增加一个字段,自动设置为系统默认时间
  15. 保护眼睛的颜色和各种背景颜色设置方法
  16. ddPCR 数字PCR检测服务
  17. vue--后台管理系统问题和功能实现思路集锦
  18. mybatis中大于,小于,大于等于,小于等于,转义写法
  19. 查看linux操作系统版本--实用
  20. 生命是罐头,胆量是开罐器

热门文章

  1. ASP.NET MVC 3—一切的开始MvcHandler、MvcHttpHandler
  2. 篮球战术谈之经典配合
  3. Pulseaudio之load-module加载module-always-sink(十四)
  4. emacs+cedet解析源码定义位置
  5. android系统预制app/bin/.so文件及文件夹
  6. javap命令生成native需要的签名
  7. oracle 登录dba,在Oracle10gisqlplus下登录dba用户
  8. 阻止路由跳转得方式_vue中路由跳转的三种方式 简洁易懂
  9. ubuntu 升级python_如何将 Ubuntu 16 和 18 上的 python 升级到最新 3.8 版
  10. python-scrapy框架学习笔记