在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-Slave主从关系设置, 以下针对real_only只读属性做些笔记记录:

1) 对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置:
将MySQL设置为只读状态的命令(可以登录mysql执行下面命令, 或者在my.cnf配置文件中添加"read_only=1",然后重启mysql服务):

mysql> show global variables like "%read_only%";
mysql> flush tables with read lock;
mysql> set global read_only=1;
mysql> show global variables like "%read_only%";

将MySQL从只读状态设置为读写状态的命令:

mysql> unlock tables;
mysql> set global read_only=0;

2) 对于需要保证master-slave主从同步的salve库
将slave从库设置为只读状态,需要执行的命令为:

mysql> set global read_only=1;

将salve库从只读状态变为读写状态,需要执行的命令是:

mysql> set global read_only=0;

对于Mysql数据库读写状态,主要靠"read_only"全局参数来设定;默认情况下, 数据库是用于读写操作的,所以read_only参数也是0或faluse状态,这时候不论是本地用户还是远程访问数据库的用户,都可以进行读写操作;

如需设置为只读状态,将该read_only参数设置为1或TRUE状态,但设置 read_only=1 状态有两个需要注意的地方:
1) read_only=1只读模式,不会影响slave同步复制的功能,所以在MySQL slave库中设定了read_only=1后,通过 "show slave status\G" 命令查看salve状态,可以看到salve仍然会读取master上的日志,并且在slave库中应用日志,保证主从数据库同步一致;
2) read_only=1只读模式,限定的是普通用户进行数据修改的操作,但不会限定具有super权限的用户的数据修改操作;在MySQL中设置read_only=1后,普通的应用用户进行insert、update、delete等会产生数据变化的DML操作时,都会报出数据库处于只读模式不能发生数据变化的错误,但具有super权限的用户,例如在本地或远程通过root用户登录到数据库,还是可以进行数据变化的DML操作;(也就是说"real_only"只会禁止普通用户权限的mysql写操作,不能限制super权限用户的写操作; 如果要想连super权限用户的写操作也禁止,就使用"flush tables with read lock;",这样设置也会阻止主从同步复制!)

锁表操作
为了确保所有用户,包括具有super权限的用户也不能进行读写操作,就需要执行给所有的表加读锁的命令 "flush tables with read lock;",这样使用具有super权限的用户登录数据库,想要发生数据变化的操作时,也会提示表被锁定不能修改的报错。这样通过设置"read_only=1"和"flush tables with read lock;"两条命令,就可以确保数据库处于只读模式,不会发生任何数据改变,在MySQL进行数据库迁移时,限定master主库不能有任何数据变化,就可以通过这种方式来设定。

但同时由于加表锁的命令对数据库表限定非常严格,如果再slave从库上执行这个命令后,slave库可以从master读取binlog日志,但不能够应用日志,slave库不能发生数据改变,当然也不能够实现主从同步了,这时如果使用 "unlock tables;"解除全局的表读锁,slave就会应用从master读取到的binlog日志,继续保证主从库数据库一致同步。

为了保证主从同步可以一直进行,在slave库上要保证具有super权限的root等用户只能在本地登录,不会发生数据变化,其他远程连接的应用用户只按需分配为select,insert,update,delete等权限,保证没有super权限,则只需要将salve设定"read_only=1"模式,即可保证主从同步,又可以实现从库只读。相对的,设定"read_only=1"只读模式开启的解锁命令为设定"read_only=0";设定全局锁"flush tables with read lock;",对应的解锁模式命令为:"unlock tables;".当然设定了read_only=1后,所有的select查询操作都是可以正常进行的。

Mysql的read_only 只读属性说明 (运维笔记)相关推荐

  1. 老男孩的linux运维笔记-初级部分内容(一)

    ############################################################ # # USER          YYYY-MM-DD – ACTION # ...

  2. 老男孩的运维笔记文档-高级部分(系统架构师)列表(三)

    ############################################################ # # USER          YYYY-MM-DD – ACTION # ...

  3. H5直播站点运维笔记四 压测篇

    H5直播站点运维笔记四 压测篇 压测篇 一.测试环境 1.CPU 2.内存 3.操作系统 4.WEB环境 二.优化前压测 三.开启opcache优化 四.laravel 缓存配置/路由/类映射加载优化 ...

  4. 老男孩的运维笔记文档-中级部分(运维中级)列表(二)

    ############################################################ # # USER          YYYY-MM-DD – ACTION # ...

  5. 运维笔记--postgresql占用CPU问题定位

    运维笔记--postgresql占用CPU问题定位 场景描述: 业务系统访问变慢,登陆服务器查看系统负载并不高,然后查看占用CPU较高的进程,发现是连接数据库的几个进程占用系统资源较多. 处理方式: ...

  6. mysql 二进制日志变化_MySQL运维之二进制日志

    MySQL二进制日志里保存会造成或可能造成数据变化的SQL语句.通过二进制日志可以完成如实时异地容灾备份.读写分离.数据恢复等功能.下面,我们一起来看看Mysql二进制日志. 开启bin-log日志 ...

  7. bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...

    MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典 本资源由JAD资源网收集整理丨www.jiuandun.com 资源简介 MySQ DBAL重点剖 ...

  8. 本周四晚8点直播预告丨探秘MySQL极限,解锁核心运维关卡

    点击上方蓝色字关注我们~ 探秘MySQL极限,解锁核心运维关卡--3月3日20:00 根据 DB-engine 流行度显示,MySQL 是最流行的开源关系型数据库管理系统,在 WEB 应用方面,是最好 ...

  9. [运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布

    [运维笔记] PowerShell (库/模块).库的查找.安装.卸载.更新.保存.发布 作者主页:jcLee95:https://blog.csdn.net/qq_28550263?spm=3001 ...

  10. [运维笔记] PowerShell (模块).模块清单

    [运维笔记] PowerShell (模块).模块清单 作者:jcLee95 目 录 1. 模块清单是什么 2. 如何创建模块清单 3. 模块清单.psd1文件内容解释 4. 某库的模块清单实例 1. ...

最新文章

  1. 中汽创智科技首席人工智能官丁华杰:AI赋能自动驾驶的几点思考
  2. 求解一个数的所有约数之积
  3. 湖南大学计算机系统原理实验,湖南大学-计算机组成原理实验-实验3-bomblab_图文.pdf...
  4. a标签隐藏真实地址_家庭影院布线非常杂乱应该怎么补救?A/V电缆管理的7个技巧...
  5. pyqt5子窗口跳出主窗口_弹出式窗口与 可用性,转换和跳出率
  6. 线性代数的本质笔记-更新ing
  7. 从310到蚂蚁森林,蚂蚁金服在线图计算的创新与实践
  8. python入门教授_南开大学教授强力推荐的5本Python入门书籍,附电子版
  9. 查看linux系统软件各种版本环境
  10. C语言 - 判断素数的函数
  11. 广东IPTV机顶盒安装第三方应用
  12. sqlserver 查询 oracle 语法,Oracle/SQLServer 跨库查询
  13. Origin作图点太密集处理方法
  14. 费曼和西蒙的学习方法分享
  15. Springboot毕设项目基于Java对运动心跳数据分析系统设计与实现455j4(java+VUE+Mybatis+Maven+Mysql)
  16. onload的具体使用
  17. 【实用】关于Ubuntu下的对拍程序
  18. 几种主流快速开发平台选择
  19. SqlService基础一篇搞定(建库建表、插入数据、修改和删除数据、基础查询、条件查询、模糊查询、聚合函数、分组查询、多表查询)
  20. android个人记账软件(附上源码)

热门文章

  1. 【C++】 bin文件转换成txt文件
  2. 0基础如何自学软件编程开发
  3. html本地视频在线播放,html5本地播放器
  4. Contest 1479 2018-ZZNU-ACM集训队 夏季队内积分赛 (3)K题(易水寒)
  5. Error starting Tomcat context
  6. 数据处理 | 一些野路子
  7. 【乐谱】摇篮曲(小宝宝要睡觉)五线谱-单音和声版
  8. Arduino 多LED灯控制
  9. amd显卡怎么设置风扇?
  10. 微信小程序 + shiro 实现登录(安全管理) —— 保姆级教学