小白的Mysql读写分离以及中间件日记

本文介绍了数据库读写分离的概念,通过设置主从数据库来分担读写压力,确保系统稳定性。重点讲述了MySQLRouter的配置步骤,包括安装、修改配置文件以及创建不同权限的数据库用户,以此实现读写分离和负载均衡。
摘要由CSDN通过智能技术生成

读写分离是什么:

利用主从数据库来实现读写分离,从而分担主数据库的压力。在多个服务器上部署mysql,将其中一台认为主数据库,而其他为从数据库,实现主从同步。其中主数据库负责主动写的操作,而从数据库则只负责主动读的操作(slave从数据库仍然会被动的进行写操作,为了保持数据一致性),这样就可以很大程度上的避免数据丢失的问题,同时也可减少数据库的连接,减轻主数据库的负载。

简单来说读写分离就是为了确保数据库产品的稳定性,很多数据库拥有双机热备功能。也就是,第一台数据库服务器,是对外提供增删改业务的生产服务器;第二台数据库服务器,主要进行读的操作。

中间件(middleware):

中间件可以实现数据库的读写分离,分摊每台服务器的负载,从而实现负载均衡
中间件有哪些:

  • mycat (开源免费)
  • MySQLrouter(Mysql官方出品)
  • weblogic(Oracle)
  • oneproxy

图解

在这里插入图片描述

读写分离配置(基于Mysqlrouter)

实验步骤:

  1. 下载并安装mysqlrouter官方地址
  2. [root@mysql-router-1 mysqlrouter]# rpm -ivh mysql-router-community-8.0.21-1.el7.x86_64.rpm
  3. 修改配置文件
[root@mysql-router-1 ~]# cd /etc/mysqlrouter/
[root@mysql-router-1 mysqlrouter]# ls
mysqlrouter.conf
[root@mysql-router-1 mysqlrouter]# vim mysqlrouter.conf 
[routing:read_write]
bind_address = 192.168.0.176    #mysqlrouter服务器IP地址
bind_port = 7001
mode = read-write          #master可读可写
destinations = 192.168.0.163:3306  #master ip
max_connections = 65535
max_connect_errors = 100
client_connect_timeout = 9

[routing:read_only]
bind_address = 192.168.0.176
bind_port = 7002
mode = read-only
destinations = 192.168.0.58:3306  #slave ip
max_connections = 65535
max_connect_errors = 100
client_connect_timeout = 9
[root@mysql-router-1 mysqlrouter]# service mysqlrouter start
Redirecting to /bin/systemctl start mysqlrouter.service
[root@mysql-router-1 mysqlrouter]#
[root@mysql-router-1 mysqlrouter]# netstat -anplut|grep mysqlrouter
tcp        0      0 192.168.0.153:7001      0.0.0.0:*               LISTEN      15831/mysqlrouter   
tcp        0      0 192.168.0.153:7002      0.0.0.0:*               LISTEN      15831/mysqlrouter   

4.创建用户

[root@mysql-router-1 mysqlrouter]# 
在master上创建2个用户,一个读写,一个读
root@(none) 15:26  mysql>grant all on *.* to "user1"@'%' identified by '123456wu';
Query OK, 0 rows affected, 1 warning (0.02 sec)


root@(none) 15:26  mysql>grant select on *.* to 'user2'@'%'  identified by '123456zou';
Query OK, 0 rows affected, 1 warning (0.03 sec)

root@(none) 15:27  mysql>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值