常见现象

  运维工作中会经常维护MySQL主从服务器,当然Slave我们只是用于读操作。

一般权限开通也只授权只读账号,但是有时候维护工作可能不是一个人在做,你不能保证其他同事都按照这个标准操作。

有同事可能会授权Slave库MySQL账号为all或者select,update,insert,delete。还有一种情况是主从做了对所有数据的同步(包括用户信息),在Master库上面授权的账号也同步到了Slave库上面,当然Master账号中肯定会有select,update,insert,delete权限。

存在的问题

  那么问题来了,当运维人员或者开发人员程序错误的连接了Mysql把Slave当成了Master等情况,那么就悲催了所有的数据修改就到Slave了,也会直接影响到主从的同步。

为了避免上述问题,我们需要给MySQL的Slave设置为只读模式。

解决方法

演示如下:
mysql> set global read_only=1; 
Query OK, 0 rows affected (0.00 sec)

#set global read_only=0 为取消普通账号的只读模式

授权普通MySQL测试账号
mysql> grant select,insert,update,delete on s18.* to 'test'@'127.0.0.1' identifi
ed by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

用测试账号登陆进行删除等操作,会提示--read-only错误
mysql> delete from student where sid=14;
ERROR 1290 (HY000): The MySQL server is running with the --read-only option so i
t cannot execute this statementmysql> insert class values(5,三年级十班);
ERROR 1290 (HY000): The MySQL server is running with the --read-only option so i
t cannot execute this statement

注意:set global read_only=1 对拥有super权限的账号是不生效的,所以在授权账号的时候尽量避免添加super权限

那么我们在做数据迁移的时候不想发生任何数据的修改,包括super权限修改也要限制。

可以用锁表:

mysql> flush tables with read lock;
Query OK, 0 rows affected (0.18 sec)

使用root账号测试:
mysql>  delete from student where sid=13;
ERROR 1223 (HY000): Can't execute the query because you have a conflicting read
lock

解锁测试:
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql>  delete from student where sid=13;
Query OK, 0 rows affected (0.00 sec)

转载于:https://www.cnblogs.com/sandea/p/9467176.html

MySQL设置从库只读模式相关推荐

  1. mysql设置主从同步只读_MySql主从同步设置

    主MySql服务器A:192.168.1.3 从MySql服务器B:192.168.1.4 1.编辑A的my.cnf,一般在/etc/my.cnf,在[mysqld]下面添加 log-bin=mysq ...

  2. 设置Excel表格“只读模式”的两种方法

    Excel表格的"只读模式"可以帮助我们防止意外更改表格,根据不同需求,表格可以设置"有密码"和"无密码"的两种"只读模式&quo ...

  3. PHP毕业设计选题管理系统可以用wamp、phpstudy运行定制开发mysql数 据库BS模式

    一.源码特点     PHP毕业设计选题管理系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库系统主要采用B/S模式开发,开发环境为PHP APACHE,数 ...

  4. PHP项目进程管理系统可以用wamp、phpstudy运行定制开发mysql数 据库BS模式

    一.源码特点     PHP项目进程管理系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库系统主要采用B/S模式开发,开发环境为PHP APACHE,数据库 ...

  5. 为什么有时优盘是只读模式_如何设置U盘为只读模式

    如何设置U盘为只读模式,u盘相信大家都不陌生了,由于U盘的体积小重要轻这些特点受到大家的欢迎,但也正因为U盘这些特点,很多人也担心在自己的电脑上的重要资料会被不知不觉中复制走,但又不能禁用U盘,那么怎 ...

  6. Word的只读模式和限制编辑有区别吗?如何设置和取消?

    给Word文档设置保护,可以选择"只读模式"或者"限制编辑",但两者还是有区别的,下面就来具体说说. 一.保护方式不同 设置了"只读模式"的 ...

  7. Excel的只读模式和限制编辑有区别吗?如何设置和取消?

    如果不想做好的excel表格被随意更改,我们可以给表格设置保护."只读模式"或者"限制编辑"都是保护excel表格的方法,但两者还是有区别的. 一.保护方式不同 ...

  8. word文件自动变成只读模式,怎么办?

    有些在网上下载的文件打开之后发现是只读模式,或者自己的word文件突然变成了只读模式,导致我们无法编辑.不能打印文件等情况,那么我们应该如何解决这种问题呢?今天和大家分享三种方法: 方法一: 我们点击 ...

  9. mysql只读模式的设置方法与实验

    在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系. 经过实际测试,对于MySQL单实例数据库和master库,如果需要设置为只读状态, ...

最新文章

  1. 卷积神经网络语音识别_用于物体识别的3D卷积神经网络
  2. react事件处理函数中绑定this的bind()函数
  3. 程序员必会的核心基础知识:1张导图+10本书
  4. 华为前员工李洪元:我的诉求只有见任总能解决;音悦台被传倒闭;.NET Core 3.1 发布 | 极客头条...
  5. Atitit es6新特性 Es7 es8 新特性 目录 1.1. ECMAScript 的历史 1 2. 新特性 2 2.1. 全面的class模型 2 2.2. .模块 import、expor
  6. 人人开源的遇到的错误
  7. 公云(3322)动态域名更新API
  8. LA 4490 Help Bubu (状压DP)
  9. 概率论与数理统计学习笔记(5)——极大似然估计
  10. 三层交换机和二层交换机区别是什么
  11. Windows server2012R2 企业内部搭建虚拟专用网络服务
  12. java换算当地时间_Java UTC时间与本地时间互相转换
  13. varnish php,php监控varnish状态
  14. 计算机安全模式还原系统,Win10电脑安全模式怎么还原系统?Win10电脑安全模式还原系统方法步骤...
  15. win10计算机拒绝访问,Win10文件访问被拒绝如何解决?
  16. CC(标准)版D碟收藏指南(二)
  17. matlab对矩阵自相关,自相关矩阵和互相关矩阵的matlab实现
  18. 浅谈ATX电源中的负载电阻
  19. 视频号支持直播连麦美颜瘦脸打赏抽奖:国仁楠哥
  20. 2.45GHz天线初始尺寸设定

热门文章

  1. STM32F103ZET6 蜂鸣器、按键
  2. python进阶(第三章1) 字典
  3. Android 第十二课 使用LitePal操作数据库(记得阅读最后面的注意事项哦)
  4. svg配合css3动画_带有Adobe Illustrator,HTML和CSS的任何网站的SVG动画
  5. travis-cli 使用
  6. 2012 Multi-University #8
  7. ubuntu 开启 apache mod_rewrite
  8. web服务器的基本应用
  9. 简述JQuery,Extjs,YUI,Prototype,Dojo等JS框架的区别和应用场景
  10. 50个Web设计师超便利的工具