1、设置只读模式(此中模式连super都不能进行写)

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%";

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

mysql> unlock tables;

mysql> set global read_only=0;

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

mysql> set global read_only=1;

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

mysql> set global read_only=0;

对于数据库读写状态,主要靠 “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 statusG 命令查看salve状态,可以看到salve仍然会读取master上的日志,并且在slave库中应用日志,保证主从数据库同步一致;

2.read_only=1只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户的数据修改操作;在MySQL中设置read_only=1后,普通的应用用户进行insert、update、delete等会产生数据变化的DML操作时,都会报出数据库处于只读模式不能发生数据变化的错误,但具有super权限的用户,例如在本地或远程通过root用户登录到数据库,还是可以进行数据变化的DML操作;

为了确保所有用户,包括具有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只读模式_mysql 只读模式详解相关推荐

  1. mysql explain语句_Mysql explain 语句详解

    explain 语句详解 explain 写在 select 前,如下 mysql> explain select * from user_info where id = 2\G ******* ...

  2. mysql.user表_mysql.user表详解

    GRANT语法: GRANT 权限 ON 数据库.* TO 用户名@'登录主机' IDENTIFIED BY '密码' 权限: ALL,ALTER,CREATE,DROP,SELECT,UPDATE, ...

  3. mysql autoenlist默认_mysql连接参数详解

    通常数据库连接字符串为: Database=dbname;Data Source=192.168.1.1;Port=3306;User Id=root;Password=****;Charset=ut ...

  4. mysql主从配置_MySQL主从配置详解

    主服务器数据库的每次操作都会记录在其二进制文件mysql-bin.xxx(该文件可以在mysql目录下的data目录中看到)中,从服务器的I/O线程使用专用账号登录到主服务器中读取该二进制文件,并将文 ...

  5. mysql 同步方式_MYSQL 主从同步详解

    关于MYSQL主从同步 什么是MYSQL的主从复制 主从复制是指将一个服务器作为主服务器,所有的数据更新操作都在主服务器进行,并且将主服务器的数据同步到一个或多个从服务器,保证从服务器和主服务器的数据 ...

  6. mysql 笔试题_MySQL笔试题详解(一)(中等难度)

    有一位学生在找数据分析工作的时候,遇到一个笔试题,内容如下: 现有注册用户表table_user,有两个字段:user_id(用户id).reg_tm(注册时间).有订单表table_order,有三 ...

  7. mysql 8安装_mysql安装过程详解

    mysql是后端开发常用的数据库,它常常与java.idea.maven等开发工具结合在一起开发相应的后台应用. mysql安装过程主要分为以下几步: 1.安装.NETFramework4.5.2. ...

  8. mysql explain 索引_MySql中Explain详解与索引最佳实践

    使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的.分析你的查询语句或是结构的性能瓶颈 下面是使用 explain 的例子: 在 select 语句之 ...

  9. mysql关系数据库引擎_MySQL数据库引擎详解

    作为Java程序员,MySQL数据库大家平时应该都没少使用吧,对MySQL数据库的引擎应该也有所了解,这篇文章就让我详细的说说MySQL数据库的Innodb和MyIASM两种引擎以及其索引结构.也来巩 ...

  10. mysql mysqladmin 介绍_Mysql—mysqladmin 命令详解

    mysqladmin是一个执行管理操作的客户端程序.它可以用来检查服务器的配置和当前状态.创建和删除数据库等. mysqladmin工具的使用格式:mysqladmin [option] comman ...

最新文章

  1. c++ int转unsigned int_mysql中int、bigint、smallint 和 tinyint的区别详细介绍
  2. C#中三种定时器对象的比较
  3. Hibernate映射关系总结篇
  4. 你喜欢什么样的课堂?
  5. Bean的scope属性
  6. 车站信号计算机联锁系统英语,车站信号计算机联锁-复习题
  7. 学计算机比学农好吗,学农教育效果如何?学生:“做农活比打游戏有意义”
  8. Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader
  9. TimeUnit类中的sleep() 和Thread.sleep()
  10. J2EE运动会管理系统(含源码)
  11. Tomcat的作用(自用)
  12. Android安全之使用root权限绕过检测机制,强行自动允许应用的悬浮窗/应用后台弹出界面等权限
  13. 线程同步作业(一):Lock,monitor
  14. debug5x 微信_微信X5内核webview调试
  15. matlab fspecial创建滤波算子
  16. jstack定位CPU占用率高的线程代码
  17. python中,ttk.Combobox的background、foreground和font属性的设置问题
  18. 抽象语法树(AST)
  19. 2. 【短语、直接短语、句柄】概念、做题步骤
  20. K8SEASY:一键安装K8S高可用集群

热门文章

  1. windows10启动项修复||an operating system wasn't found解决办法
  2. 国内公有云对比(1.5)- 功能篇之青云
  3. 活动现场大屏幕互动系统源码,包含3D签到投票抽奖等功能
  4. Android自定义锁屏实现----仿正点闹钟滑屏解锁
  5. win10用不了计算机一级,教你一招解决Win10计算器打不开的问题
  6. 全向轮算法/万向轮算法/福来轮算法/全向轮漂移算法/万向轮漂移算法/福来轮漂移算法
  7. 微信怎么加入黑名单?微信黑名单怎么恢复好友
  8. 微软Windows 10 MSDN官方ISO镜像正式版下载
  9. c语言硬币大小,C语言抛硬币
  10. Android 贝塞尔曲线的魅力