在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 从库 read only_mysql salve从库设置read only 属性相关推荐

  1. 给mysql salve从库复制授权_MySQL主从复制

    MySQL主从复制 引入 MySQL数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MySQL数据库支持单向.双向 ...

  2. 给mysql salve从库复制授权_MySQL主从复制 - osc_h8z06jiq的个人空间 - OSCHINA - 中文开源技术交流社区...

    MySQL主从复制 引入 MySQL数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MySQL数据库支持单向.双向 ...

  3. mysql跨库查询 索引_MySQL中跨库查询怎么搞?

    导读 在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询. 在MySQL中跨库查询主要分为两种情况,一种 ...

  4. MySQL主从复制主库宕机:1更新完relaylog2最大post设为主库 配置及删除之前从库信息3其他从库新建连接

    1.确保所有relay log 全部更新完毕 在每个从库上执行 stop slave io_thread; show processlist; 直到看到Has read all relay log:表 ...

  5. 【C/C++10】天气APP:MySQL/PostgreSQL,环境变量/动静态库,Linux/Oracle字符集

    文章目录 1.MySQL:decimal,find . .-print 2.PostgreSQL:$ 3.环境变量:tnsnames.ora,curl 3.1 对单一用户生效: .bash_profi ...

  6. mysql256次利用_【案例】【MySQL】一次复杂的主从库数据不一致修复

    修复操作之前,已写好了修复操作方案.回滚方案和规避建议.但是修复过程中,发生了一些意料之外的状况,根据实际情况不断修改方案,直到完成预定目标. 问题描述: 主库已从2b切换到2a,在新主库2a上查询不 ...

  7. mysql从库夯住_MySQL从库维护经验分享

    前言: MySQL 主从架构应该是最常用的一组架构了.从库会实时同步主库传输来的数据,一般从库可以作为备用节点或作查询使用.其实不只是主库需要多关注,从库有时候也要经常维护,本篇文章将会分享几点从库维 ...

  8. mysql建立从库同时备份_mysql主从库配置读写分离以及备份

    1,什么是读写分离? 其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作, 主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构. 一个组从同步集群,通常被称为是一个& ...

  9. 你的个人信息是如何被盗走的?MySQL脱库,脱库的原理,怎么脱库,脱库的步骤,一库三表六字段

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 脱库 一.什么是脱库 二.默认数据库 三.一库三表六字段 四.脱库步骤 1)爆 ...

最新文章

  1. 【机器学习】理解方差、偏差且其泛化误差的关系
  2. mysql查看数据库命令
  3. 国际主流云厂商生存画像:三大赛道愈发清晰
  4. thetae_1在MATLAB中的意思,无刷直流电机在Matlab中的建模与仿真研究_荣军
  5. CentOS6/CentOS7系统配置IPv6地址的方法
  6. Unity联网插件(PUN)
  7. 用JavaScript检测IE浏览器版本
  8. python计算圆周率_Python圆周率计算
  9. 计算机没有管理无线网络,电脑连接无线网络时,提示你没有首选无线网络怎么办...
  10. MyExcel 3.6.0 版本发布,支持列表模板混合导出
  11. php 自适应 博客,三种方法让网站背景自动适应各浏览器大小
  12. Android 12.0 修改系统默认字体的大小
  13. 洛谷T46780 ZJL 的妹子序列(生成函数)
  14. 结合grabcut和inpaint,实现人像去除
  15. 微信小程序后台返回的JSON字符串转JSON报错问题解决方案
  16. 计算机控制系统的品质指标,过程控制系统的品质指标.PPT
  17. 什么是资产管理系统 EAM资产管理系统的作用
  18. 分支语句(if,switch)
  19. java毕业生设计学生用品采购系统计算机源码+系统+mysql+调试部署+lw
  20. 基于ARCGIS更改已经标定的线性单位(自用记录)

热门文章

  1. python 函数式 panda_python – 反向中的Pandas分裂函数
  2. 哥伦比亚大学浙江大学计算机,大神offer | 恭喜C同学录取哥伦比亚大学-数据科学硕士!...
  3. 单细胞数据整合方法 | Comprehensive Integration of Single-Cell Data
  4. 小学经历——我家有猪
  5. 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
  6. Qt5.9使用QWebEngineView加载网页速度非常慢,问题解决
  7. 20169214 2016-2017-2 《网络攻防实践》实验二学习总结
  8. Android初级教程Activity小案例(计算器乘法运算)
  9. linux各种查看端口号
  10. .NET错误:未找到类型或命名空间名称