前言

环境:CentOS 7.9 mysql 5.7 已配置好master、salve主从复制

读写分离

在大规模、高并发的企业环境中,为了缓解数据库的访问压力,我们一般的解决办法是对数据库进行读写分离,即前端用户对数据的增删改访问的是master主库,对数据的读取检错访问的salve库,这样就能大大减缓master主库的访问压力。

方法一、读写分离

可以给开发人员提供2个不同的账号,如下:

master主库IP:192.168.1.1 端口:3306 数据库:web 用户名:web_w 密码:manager001
授权:grant select,insert,update delete on ‘web’.* to ‘web_w’@‘192.168.1.%’ identified by ‘manager001’;

salve主库IP:192.168.1.2 端口:3306 数据库:web 用户名:web_r 密码:manager001
授权:grant select on ‘web’.* to ‘web_r’@‘192.168.1.%’ identified by ‘manager001’;

此方法显然不够专业,但也能满足需求,只需开发在程序中DAL层调用不同的数据库用户即可。

方法二、读写分离

只给开发提供一个用户,即主从使用相同的用户账号,但授予不同的权限。

master主库IP:192.168.1.1 端口:3306 数据库:web 用户名:web 密码:manager001
授权:grant select,insert,update delete on ‘web’.* to ‘web’@‘192.168.1.%’ identified by ‘manager001’;

此时,对salve从库撤销权限,如下:
revoke insert,update delete on ‘web’.* to ‘web’@‘192.168.1.%’ identified by ‘manager001’;

或者忽略权限
在master主库配置文件my.cnd中[mysqld]下添加:
binlog-ignore-db = mysql #等号两边有空格,指定mysql是因为mysql是储存权限的库
replication-ignore-db = mysql

方法三、设置salve从库只读

只给开发提供一个用户,即主从使用相同的用户账号,授予相同的权限,但设置salve从库为只读状态。

master主库IP:192.168.1.1 端口:3306 数据库:web 用户名:web 密码:manager001
授权:grant select,insert,update delete on ‘web’.* to ‘web’@‘192.168.1.%’ identified by ‘manager001’;

此时配置从库只读:
vim /etc/mysql.cnf
[mysqld]
read-only

说明:read-only参数设置了salve从库只读,表示从库不允许被前端用户更新,但具有super权限的用户和来之线程的用户是具有对从库更新的权限的,如root用户、主从复制的用户rep等

企业中读写分离配置方案

我们可以在给开发人员提供一个web用户,限制master的权限的主从复制,同事为了保险还可以设置salve从库为只读状态,如下配置:

在master主库配置文件my.cnd中[mysqld]下添加:
binlog-ignore-db = mysql #等号两边有空格,指定mysql是因为mysql是储存权限的库
replication-ignore-db = mysql

master主库创建用户并授权:
grant select,insert,update delete on ‘web’.* to ‘web’@‘192.168.1.%’ identified by ‘manager001’;

此时配置从库只读read-only:
vim /etc/mysql.cnf
[mysqld]
read-only

疑问?

我们在master主库中的配置文件中添加了这两个参数binlog-ignore-db = mysql 和replication-ignore-db = mysql,那么master主库创建用户web的时候,从库有没有创建该用户呢?如果没有创建那么需要自己手动创建一个吗然后在设置从库为read-only只读吗?
欢迎回答。

mysql的读写分离配置相关推荐

  1. yii2 mysql in_yii2 mysql数据库读写分离配置

    复制和读写分离(Replication and Read-Write Splitting) 许多数据库支持数据库复制来获得更好的数据库可用性, 以及更快的服务器响应时间.通过数据库复制功能, 数据从所 ...

  2. Mysql Router 读写分离配置

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装 rpm -ivh mysql-router-2.0.4-1.el6.x86_64.rpm 2.配置 cat > ...

  3. Amoeba实现mysql主从读写分离

    Amoeba实现mysql主从读写分离 这段在网上看了下关于amoeba的文章,总体感觉好像要比mysql-proxy好的多,也参考了不少的资料,此文章可能与其他文章作者会有雷同的地方,请谅解,但是此 ...

  4. Mysql一主多从和读写分离配置简记

    Mysql一主多从和读写分离配置简记 标签: mysql数据库服务器class数据库servermanager 2012-05-30 16:44 14981人阅读 评论(1) 收藏 举报  分类: 数 ...

  5. mysql 配置文件在哪_MySQL+MyCat分库分表 读写分离配置

    一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件,运行在代码应用和MySQL数据库之间的应用. 前身: corb ...

  6. mysql读写分离错_MySQL主从同步、读写分离配置步骤、问题解决

    根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记: 现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要 ...

  7. MySQL主从复制与读写分离配置及实操

    MySQL主从复制与读写分离 一.MySQL主从复制 1.复制类型 2.工作过程 二.MySQL读写分离 1.定义 2.存在意义 3.作用时间 4.原理 5.类型 基于程序代码内部实现 基于中间代理层 ...

  8. MySQL的主从配置+SpringBoot的MySQL读写分离配置

    MySQL的主从复制 点击前往查看MySQL的安装 1.主库操作 vim /etc/my.cnf 添加如下配置 log-bin=mysql-bin #[必须]启用二进制日志 server-id=128 ...

  9. Centos7源码安装mysql及读写分离,互为主从

       Linux服务器 -源码安装mysql 及读写分离,互为主从   一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...

  10. MySQL Router实现MySQL的读写分离

    1.简介 MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy. 既然MySQL Router是一个数据库的中间件,那么MySQL Rout ...

最新文章

  1. log4j2分层输出日志
  2. 揭开HTTPS的神秘面纱
  3. 要闻君说:特斯拉重磅推出影响力报告;三星官宣完成5纳米EUV工艺研发还承诺提供样品;国内首条5G智能制造生产线正式“上马”...
  4. html5如何新建定义站点,HTML5技术教程:创建新作品_HTML5教程_创建作品_添加元素_课课家...
  5. 视频: 安卓连接无线临时网络adhoc共享电脑上网无需adhoc补丁
  6. [西瓜书习题] 第二章 模型评估与选择
  7. 【java】如何在IDEA 中查看 Class文件的汇编
  8. php 微信获取code,微信网页授权接口为什么获取不到code(已解决)
  9. Ubuntu下qt5无法输入中文
  10. drf版本控制 和django缓存,跨域问题,
  11. kafka 查看队列信息
  12. 【主动轮廓模型(二)】《GVF Snake》算法原理与OpenCV实现
  13. [科普文] 搞 Web3 要学习哪些基础知识?
  14. 解决MySql保存数据java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x91\x87\xE5\x91...‘
  15. BIT2023 智慧社区综合管理系统-一周目
  16. docker搭建 JRebel 验证服务器 和 IDEA 验证服务器
  17. SCI-15种投稿状态
  18. 区块链实战(一)实现简单的区块与区块链交易
  19. 【Hadoop】HBase 数据模型(Data Model)
  20. rsa前后端加密流程_HTTPS 温故知新(三)——直观感受 TLS 握手流程(中)

热门文章

  1. java odbc timesten_TimesTen ODBC 链接库差异及相关命令行工具的使用注意事项
  2. Redis 和 memcached 区别
  3. python学习笔记之其它
  4. 微信小程序 this.data与this.setData
  5. 201521123033《Java程序设计》第3周学习总结
  6. 【转载】ARX程序再VS2002中的调试初探
  7. 把IMAGE组件模式窗口化。
  8. 八段锦是一种不错的养生运动
  9. redis缓存穿透、缓存雪崩、缓存击穿详解
  10. MyCat分片规则之取模范围分片