直奔主题,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 设置数据库只读_如何设置mysql数据库为只读相关推荐

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

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

  2. mysql 设置连接超时_如何配置MySQL数据库超时设置

    最近备战京东双11,在配置MySQL的超时配置发现有很多地方可以设置.这么多超时的配置有什么影响,以及配置会有什么影响呢?今天的文章就让我来大家来分析一下. 1. JDBC超时设置 connectTi ...

  3. 如何设置mysql的运行目录_如何修改mysql数据库文件的路径 | 学步园

    在网上找了好多,没有确定哪个是最终的答案,由于网站在运行中,实在不敢轻易动手,怎么奈我是个菜鸟呢!先把找到的东西简单记录一下,回头再说! 还有一个: 首先在数据库里看一下数据库里当前数据文件的存放路径 ...

  4. mysql双机数据热备份_如何设置MySql数据同步实现双机热备份

    mysql从3.23.15版本以后就提供了数据库复制功能,利用该功能可实现两个数据库以主从模式来同步数据.互相备份的功能.数据库同步复制功能的设置都在mysql的设置文件中体现.该方案实施的一大基本原 ...

  5. mysql设置负载均衡_如何设置mysql的负载均衡?

    MySQL作为中小型办公室都会选择的数据库系统,在安装前工作人员需要知道mysql安装前所必需的环境,今天跟大家分享下mysql的负载均衡问题. 本文将介绍MySQL的负载均衡问题,包括环境介绍,操作 ...

  6. mysql怎么设置登录密码_怎么设置mysql的登录密码

    怎么设置mysql的登录密码 发布时间:2020-10-09 19:21:35 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下怎么设置mysql的登录密码,相信大部分人都还不怎么了解,因此分 ...

  7. mysql数据库参考_干货:MySQL数据库优化参考

    标签: 本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就 ...

  8. 监控mysql数据库 更新_实时监控mysql数据库变化

    对于二次开发来说,很大一部分就找找文件和找数据库的变化情况 对于数据库变化.还没有发现比较好用的监控数据库变化监控软件. 今天,我就给大家介绍一个如何使用mysql自带的功能监控数据库变化 1.打开数 ...

  9. mysql 20小时内_生产环境删除数据库,如何实现在1小时内快速恢复?

    可以使用mysql的延迟复制功能. 设置mysql 从库 延迟30分钟或者某个 1小时复制. 比如有人误操作的表,那么这个操作在延迟时间内,从库的数据并没有发生变化,可以用从库的数据进行快速恢复. 把 ...

最新文章

  1. 8、D8: Default interface methods are only supported starting with Android N (--min-api 24): void
  2. 安卓手机如何打开php文件夹,Android_Android中调用系统的文件浏览器及自制简单的文件浏览器,调用系统自带的文件浏览器- phpStudy...
  3. 全球视频监控设备市场规模分析
  4. python:改良廖雪峰的使用元类自定义ORM
  5. 20191017:C++入门经典书籍学习目录01
  6. Phoenix命令及语法
  7. 循证医学 计算机辅助决策系统,循证医学重点整理
  8. Centos 5.8 搭建ntp服务器
  9. PHP中英双语网站的设计思路
  10. 地磅15针到9针数据线连接串口数据采集方法
  11. 局域网 广域网 IP TCP UDP
  12. avue框架中使用富文本编辑器
  13. 基于Python绘制一个摸鱼倒计时界面
  14. Linux编辑firmware的文件,rk3328编译Linux固件
  15. 利用grub引导多系统debian8.0+win7+ubuntu16.04
  16. Python:利用高德API获取公交路线并可视化
  17. matlab 获得子矩阵,matlab – 获取所有子矩阵
  18. [ 笔记 ] 计算机网络安全_1_网络安全基础
  19. 《那些年 在美国》读书笔记-1
  20. 一体化伺服电机外接制动电阻线如何接

热门文章

  1. [VMM 2008虚拟化之初体验-1] 准备环境
  2. 基于RStudio 实现数据可视化之二
  3. Linux环境下利用句柄恢复Oracle误删除的数据文件
  4. inside the C++ Object model总结
  5. Java编程中“为了性能”尽量要做到的一些地方 [转]
  6. QTWebkit中的webkit/qt/api文档
  7. 【转】jquery ui中文说明(使用方法)
  8. ElasticSearch之term vector
  9. DelayedOperation分析
  10. 基于ZYNQ FPGA实现数据采集与传输系统设计