mysql的读写分离配置
前言
环境: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的读写分离配置相关推荐
- yii2 mysql in_yii2 mysql数据库读写分离配置
复制和读写分离(Replication and Read-Write Splitting) 许多数据库支持数据库复制来获得更好的数据库可用性, 以及更快的服务器响应时间.通过数据库复制功能, 数据从所 ...
- Mysql Router 读写分离配置
2019独角兽企业重金招聘Python工程师标准>>> 1.安装 rpm -ivh mysql-router-2.0.4-1.el6.x86_64.rpm 2.配置 cat > ...
- Amoeba实现mysql主从读写分离
Amoeba实现mysql主从读写分离 这段在网上看了下关于amoeba的文章,总体感觉好像要比mysql-proxy好的多,也参考了不少的资料,此文章可能与其他文章作者会有雷同的地方,请谅解,但是此 ...
- Mysql一主多从和读写分离配置简记
Mysql一主多从和读写分离配置简记 标签: mysql数据库服务器class数据库servermanager 2012-05-30 16:44 14981人阅读 评论(1) 收藏 举报 分类: 数 ...
- mysql 配置文件在哪_MySQL+MyCat分库分表 读写分离配置
一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件,运行在代码应用和MySQL数据库之间的应用. 前身: corb ...
- mysql读写分离错_MySQL主从同步、读写分离配置步骤、问题解决
根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记: 现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要 ...
- MySQL主从复制与读写分离配置及实操
MySQL主从复制与读写分离 一.MySQL主从复制 1.复制类型 2.工作过程 二.MySQL读写分离 1.定义 2.存在意义 3.作用时间 4.原理 5.类型 基于程序代码内部实现 基于中间代理层 ...
- MySQL的主从配置+SpringBoot的MySQL读写分离配置
MySQL的主从复制 点击前往查看MySQL的安装 1.主库操作 vim /etc/my.cnf 添加如下配置 log-bin=mysql-bin #[必须]启用二进制日志 server-id=128 ...
- Centos7源码安装mysql及读写分离,互为主从
Linux服务器 -源码安装mysql 及读写分离,互为主从 一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...
- MySQL Router实现MySQL的读写分离
1.简介 MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy. 既然MySQL Router是一个数据库的中间件,那么MySQL Rout ...
最新文章
- log4j2分层输出日志
- 揭开HTTPS的神秘面纱
- 要闻君说:特斯拉重磅推出影响力报告;三星官宣完成5纳米EUV工艺研发还承诺提供样品;国内首条5G智能制造生产线正式“上马”...
- html5如何新建定义站点,HTML5技术教程:创建新作品_HTML5教程_创建作品_添加元素_课课家...
- 视频: 安卓连接无线临时网络adhoc共享电脑上网无需adhoc补丁
- [西瓜书习题] 第二章 模型评估与选择
- 【java】如何在IDEA 中查看 Class文件的汇编
- php 微信获取code,微信网页授权接口为什么获取不到code(已解决)
- Ubuntu下qt5无法输入中文
- drf版本控制 和django缓存,跨域问题,
- kafka 查看队列信息
- 【主动轮廓模型(二)】《GVF Snake》算法原理与OpenCV实现
- [科普文] 搞 Web3 要学习哪些基础知识?
- 解决MySql保存数据java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x91\x87\xE5\x91...‘
- BIT2023 智慧社区综合管理系统-一周目
- docker搭建 JRebel 验证服务器 和 IDEA 验证服务器
- SCI-15种投稿状态
- 区块链实战(一)实现简单的区块与区块链交易
- 【Hadoop】HBase 数据模型(Data Model)
- rsa前后端加密流程_HTTPS 温故知新(三)——直观感受 TLS 握手流程(中)