直奔主题,mysql设置为只读后,无法增删改。

设置命令:

mysql> set global read_only=1;    #1是只读,0是读写

mysql> show global variables like "%read_only%";

以下是相关说明:

1、对于数据库读写状态,主要靠 “read_only”全局参数来设定;

2、默认情况下,数据库是用于读写操作的,所以read_only参数也是0或faluse状态,这时候不论是本地用户还是远程访问数据库的用户,都可以进行读写操作;

3、如需设置为只读状态,将该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操作;

那么super用户怎么控制读写?

1、为了确保所有用户,包括具有super权限的用户也不能进行读写操作,就需要执行给所有的表加读锁的命令 “flush tables with read lock;”这样使用具有super权限的用户登录数据库,想要发生数据变化的操作时,也会提示表被锁定不能修改的报错。

1)这样通过 设置“read_only=1”和“flush tables with read lock;”两条命令,就可以确保数据库处于只读模式,不会发生任何数据改变。

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

2、为了保证主从同步可以一直进行,在slave库上要保证具有super权限的root等用户只能在本地登录,不会发生数据变化,其他远程连接的应用用户只按需分配为select,insert,update,delete等权限,保证没有super权限,则只需要将salve设定“read_only=1”模式,即可保证主从同步,又可以实现从库只读。

3、设定“read_only=1”只读模式开启的解锁命令为设定“read_only=0”;设定全局锁“flush tables with read lock;”,对应的解锁模式命令为:“unlock tables;”.

4、当然设定了read_only=1后,所有的select查询操作都是可以正常进行的。

设置mysql数据库为只读相关推荐

  1. mysql 设置数据库只读_如何设置mysql数据库为只读

    直奔主题,mysql设置为只读后,无法增删改. 设置命令: mysql>set global read_only=1;    #1是只读,0是读写 mysql> show global v ...

  2. 设置mysql数据库为只读_如何设置mysql数据库为只读

    直奔主题,mysql设置为只读后,没法增删改.html 设置命令:mysql mysql>set global read_only=1;    #1是只读,0是读写 sql mysql> ...

  3. 查看和设置MySQL数据库字符集(转)

    查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -ina ...

  4. linux mysql设置数据库utf_设置mysql数据库 utf8

    MySQL设置字符编码 前言 这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8. 设置MySQL数据库的编码方式有三种,分别是基于session会话的.基于全局gloa ...

  5. mysql数据库字符集设置_查看和设置MySQL数据库字符集

    查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -ina ...

  6. 数据库设置_CentOS7 - 设置MySQL数据库

    设置MySQL数据库 本文介绍如何在CentOS上执行流行的MySQL数据库服务器的基本安装. MySQL是当今使用最广泛的数据库系统,它可以在许多不同的行业中找到,为动态网站和大型数据仓库等各种产品 ...

  7. 设置MYSQL数据库编码为UTF-8:

    设置mysql数据库显示编码:set charset utf8;  查看mysql数据库编码:show variables like 'character%';    在这个过程中如果出现了数据库编码 ...

  8. windows环境设置mysql数据库自动备份(测试成功)

    windows环境设置mysql数据库自动备份(测试成功) 要实现数据库的自动备份就需要一下两步: 利用MySQL提供的备份命令mysqldump 结合Windows的任务计划程序 实现步骤 编写脚本 ...

  9. linux 设置mysql 数据库编码utf8

    GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABASE ` ...

  10. mysql 存取字符集_MySQL字符集设置—MySQL数据库乱码问题详解

    MySQL(4.1以后版本) 服务器中有六个关键位置使用了字符集的概念,他们是:client .connection.database.results.server .system.MySQL有两个字 ...

最新文章

  1. 模型优化的风向标:偏差与方差
  2. shell 中一个进制转换的小技巧
  3. label自适应高度
  4. 检测含有挖矿脚本的WiFi热点——果然是天下没有免费的午餐
  5. Oracle 9i/10g/11g数据库升级路线图总览
  6. Generative Adversarial Learning Towards Fast Weakly Supervised Detection(CVPR2018)阅读笔记
  7. UE4中的字符串转换
  8. PHP群发300万,mysql 300万数据查询500多秒如何优化
  9. JVM系列一:JVM内存组成及分配
  10. Myeclipse10如何进行代码提示和自动补全
  11. Spring Security:自动登录(降低安全风险)
  12. 小米note3如何打开usb调试
  13. 戴尔 微博 服务器 销售,微博营销案例之戴尔
  14. java还原三阶魔方_魔方小站四阶魔方教程2 一看就懂的魔方教程(魔方玩法视频教程+还原公式一步一步图解+3D动画)...
  15. 测试网络SNMP连接的几个方法(我平时调试SNMP程序时用到的几个解决方案)
  16. Java向word文档中添加水印
  17. 基于ESP32的开源定时浇花系统
  18. 在手机桌面隐藏App的Icon并启动该App
  19. 墨珩科技荣获“高新技术企业”认定
  20. 全球最大的3D数据集公开了!标记好的10800张全景图 | 附论文

热门文章

  1. 【软件与系统安全】笔记与期末复习
  2. C语言BT软件项目总结
  3. 大自然的印钞机农夫山泉是如何干过一群互联网与电商大佬的
  4. css04 float
  5. 不同iPhone屏幕尺寸
  6. 14、UI_02拨号盘动画
  7. 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母
  8. matlab模拟投硬币实验,利用几何画板模拟抛硬币实验
  9. 神之bug 嵌套RecyclerView谜之滚动
  10. 网站html源代码如何修改,如何修改网页源代码