在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系。

经过实际测试,对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置:

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

# mysql -uroot -p

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;

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

mysql> set global read_only=1;

将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 status\G 命令查看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只读模式的设置方法与实验 - yumushui的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/yumushui/article/details/41645469#

mysql只读模式的设置方法与实验【转】

标签:super   连接   ret   远程连接   提示   相对   blog   软件测试   class

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/paul8339/p/6782717.html

mysql如何关闭只读模式_mysql只读模式的设置方法与实验【转】相关推荐

  1. mysql如何让自增id从1开始设置方法(三种方法)

    mysql如何让自增id从1开始设置方法 第一种 如果表中数据没有用.如果直接删除数据,自动增长ID还是不会从1开始的,可以利用"清空数据表".这样自动增长ID也将会从1开始. 清 ...

  2. mysql sql模式_MySQL SQL模式特点汇总

    前言 MySQL服务器可以在不同的SQL模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于sql_mode系统变量的值.DBA可以设置全局SQL模式以匹配站点服务器操作要求,并且 ...

  3. mysql临时关闭查询日志_mysql故障排错临时打开通用日志和慢查询日志

    有时候你遇到sql 执行报错,有的是语法错误很好判断,但有的是sql本身写的没有问题,就是在执行的时候报错,有的sql很复杂你根本就不知道具体的哪一个地方报错,这个时候你可以把复杂的sql分解去确定报 ...

  4. mysql 远程连接取消权限_MYSQL远程登录权限设置

    Mysql默认关闭远程登录权限,如下操作允许用户在任意地点登录: 1. 进入mysql,GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ...

  5. 鸿蒙系统微信怎么开启好友验证是什么意思,微信这个模式终于来了!设置方法拿走不谢...

    盼望着,盼望着 暗黑模式来啦! 小编问问大家 你们已经更新了吗? 3月上旬,微信方面表示 为了优化用户体验 微信与苹果达成合作 共同探索微信在iOS系统的深色模式体验 目前该功能已完成开发 将有望在下 ...

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

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

  7. mysql双主复制模式_mysql复制模式第二部分-----双主模式

    双主配置 我在配置主从服务器时,使用了两台服务器:10.19.34.126和10.19.34.91. 1.首先需要在这两台上搭建单独的mysql服务masterA和masterB. 2.配置数据库ma ...

  8. mysql 主从有哪几种模式_mysql 主从模式总结(一)

    1. 主从模式的部署步骤 目标:部署一个有3台主机的单主模式的MySQL分组. Primary:192.168.197.110. Secondary:192.168.197.111. Secondar ...

  9. mysql 严格模式_MySQL: 严格模式

    设置严格模式 为当前会话设置严格模式: 执行SET sql_mode = 'STRICT_TRANS_TABLES' 或者SET sql_mode = 'STRICT_ALL_TABLES'. 全局设 ...

最新文章

  1. php 注册登录,邮件确认激活
  2. Eclipse实现hibernate反向工程:从数据库逆向生成实体类和hbm文件
  3. mysql空表_MySQL中两种快速创建空表的方式
  4. 内存泄漏检测工具(转载)
  5. 《理解 ES6》阅读整理:函数(Functions)(五)Name Property
  6. vue.js ui_UI / UX开发:考虑Vue.js
  7. springboot 缓存ehcache的简单使用
  8. 走在网页游戏开发的路上——页游资源管理
  9. 阿里百万架构师打造的 Java并发编程实战笔记,理论到实践一键吃透
  10. 学弟学妹看我文章顺利毕业,基于HTML+Javascript五子棋人机博弈系统设计与实现《记得收藏》
  11. C语言的考试系统,C语言考试系统.doc
  12. 随便说说IE和Firefox的兼容性
  13. 销售人员必看~~三个经典电话销售案例
  14. 6年java工作经验总结
  15. 2048游戏DQN实验
  16. 小胖子日记之扯淡的生活2
  17. Heterogeneous Graph Neural Network(异质图神经网络)
  18. 【财经期刊FM-Radio|2021年03月01日】
  19. 单片机开发无线控制系列-单片机端代码实现
  20. 利用Python实现模糊查找

热门文章

  1. 保存的视频如何去掉水印
  2. 开源作者突然去世,后面要怎么整?
  3. 机器学习环境配置踩坑总结
  4. Bert增量训练——run_mlm.py脚本训练参数中文总结概括
  5. Unity性能优化之内存篇(上)
  6. d3h 技嘉b365m 黑苹果_技嘉B365M D3H主板u盘重装系统win10教程
  7. 华为鸿蒙不应用在手机,华为鸿蒙发布,而不是用在手机上,首发智慧屏
  8. 芯片公司招人难,留人更难
  9. 年度编程_2009年度十大礼品
  10. 浅谈Java底层排序双轴快排