mysql 从库 read only_mysql salve从库设置read only 属性
在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 属性相关推荐
- 给mysql salve从库复制授权_MySQL主从复制
MySQL主从复制 引入 MySQL数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MySQL数据库支持单向.双向 ...
- 给mysql salve从库复制授权_MySQL主从复制 - osc_h8z06jiq的个人空间 - OSCHINA - 中文开源技术交流社区...
MySQL主从复制 引入 MySQL数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MySQL数据库支持单向.双向 ...
- mysql跨库查询 索引_MySQL中跨库查询怎么搞?
导读 在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询. 在MySQL中跨库查询主要分为两种情况,一种 ...
- MySQL主从复制主库宕机:1更新完relaylog2最大post设为主库 配置及删除之前从库信息3其他从库新建连接
1.确保所有relay log 全部更新完毕 在每个从库上执行 stop slave io_thread; show processlist; 直到看到Has read all relay log:表 ...
- 【C/C++10】天气APP:MySQL/PostgreSQL,环境变量/动静态库,Linux/Oracle字符集
文章目录 1.MySQL:decimal,find . .-print 2.PostgreSQL:$ 3.环境变量:tnsnames.ora,curl 3.1 对单一用户生效: .bash_profi ...
- mysql256次利用_【案例】【MySQL】一次复杂的主从库数据不一致修复
修复操作之前,已写好了修复操作方案.回滚方案和规避建议.但是修复过程中,发生了一些意料之外的状况,根据实际情况不断修改方案,直到完成预定目标. 问题描述: 主库已从2b切换到2a,在新主库2a上查询不 ...
- mysql从库夯住_MySQL从库维护经验分享
前言: MySQL 主从架构应该是最常用的一组架构了.从库会实时同步主库传输来的数据,一般从库可以作为备用节点或作查询使用.其实不只是主库需要多关注,从库有时候也要经常维护,本篇文章将会分享几点从库维 ...
- mysql建立从库同时备份_mysql主从库配置读写分离以及备份
1,什么是读写分离? 其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作, 主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构. 一个组从同步集群,通常被称为是一个& ...
- 你的个人信息是如何被盗走的?MySQL脱库,脱库的原理,怎么脱库,脱库的步骤,一库三表六字段
「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 脱库 一.什么是脱库 二.默认数据库 三.一库三表六字段 四.脱库步骤 1)爆 ...
最新文章
- 【机器学习】理解方差、偏差且其泛化误差的关系
- mysql查看数据库命令
- 国际主流云厂商生存画像:三大赛道愈发清晰
- thetae_1在MATLAB中的意思,无刷直流电机在Matlab中的建模与仿真研究_荣军
- CentOS6/CentOS7系统配置IPv6地址的方法
- Unity联网插件(PUN)
- 用JavaScript检测IE浏览器版本
- python计算圆周率_Python圆周率计算
- 计算机没有管理无线网络,电脑连接无线网络时,提示你没有首选无线网络怎么办...
- MyExcel 3.6.0 版本发布,支持列表模板混合导出
- php 自适应 博客,三种方法让网站背景自动适应各浏览器大小
- Android 12.0 修改系统默认字体的大小
- 洛谷T46780 ZJL 的妹子序列(生成函数)
- 结合grabcut和inpaint,实现人像去除
- 微信小程序后台返回的JSON字符串转JSON报错问题解决方案
- 计算机控制系统的品质指标,过程控制系统的品质指标.PPT
- 什么是资产管理系统 EAM资产管理系统的作用
- 分支语句(if,switch)
- java毕业生设计学生用品采购系统计算机源码+系统+mysql+调试部署+lw
- 基于ARCGIS更改已经标定的线性单位(自用记录)
热门文章
- python 函数式 panda_python – 反向中的Pandas分裂函数
- 哥伦比亚大学浙江大学计算机,大神offer | 恭喜C同学录取哥伦比亚大学-数据科学硕士!...
- 单细胞数据整合方法 | Comprehensive Integration of Single-Cell Data
- 小学经历——我家有猪
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
- Qt5.9使用QWebEngineView加载网页速度非常慢,问题解决
- 20169214 2016-2017-2 《网络攻防实践》实验二学习总结
- Android初级教程Activity小案例(计算器乘法运算)
- linux各种查看端口号
- .NET错误:未找到类型或命名空间名称