设置mysql数据库为只读
直奔主题,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 设置数据库只读_如何设置mysql数据库为只读
直奔主题,mysql设置为只读后,无法增删改. 设置命令: mysql>set global read_only=1; #1是只读,0是读写 mysql> show global v ...
- 设置mysql数据库为只读_如何设置mysql数据库为只读
直奔主题,mysql设置为只读后,没法增删改.html 设置命令:mysql mysql>set global read_only=1; #1是只读,0是读写 sql mysql> ...
- 查看和设置MySQL数据库字符集(转)
查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -ina ...
- linux mysql设置数据库utf_设置mysql数据库 utf8
MySQL设置字符编码 前言 这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8. 设置MySQL数据库的编码方式有三种,分别是基于session会话的.基于全局gloa ...
- mysql数据库字符集设置_查看和设置MySQL数据库字符集
查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -ina ...
- 数据库设置_CentOS7 - 设置MySQL数据库
设置MySQL数据库 本文介绍如何在CentOS上执行流行的MySQL数据库服务器的基本安装. MySQL是当今使用最广泛的数据库系统,它可以在许多不同的行业中找到,为动态网站和大型数据仓库等各种产品 ...
- 设置MYSQL数据库编码为UTF-8:
设置mysql数据库显示编码:set charset utf8; 查看mysql数据库编码:show variables like 'character%'; 在这个过程中如果出现了数据库编码 ...
- windows环境设置mysql数据库自动备份(测试成功)
windows环境设置mysql数据库自动备份(测试成功) 要实现数据库的自动备份就需要一下两步: 利用MySQL提供的备份命令mysqldump 结合Windows的任务计划程序 实现步骤 编写脚本 ...
- linux 设置mysql 数据库编码utf8
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABASE ` ...
- mysql 存取字符集_MySQL字符集设置—MySQL数据库乱码问题详解
MySQL(4.1以后版本) 服务器中有六个关键位置使用了字符集的概念,他们是:client .connection.database.results.server .system.MySQL有两个字 ...
最新文章
- 模型优化的风向标:偏差与方差
- shell 中一个进制转换的小技巧
- label自适应高度
- 检测含有挖矿脚本的WiFi热点——果然是天下没有免费的午餐
- Oracle 9i/10g/11g数据库升级路线图总览
- Generative Adversarial Learning Towards Fast Weakly Supervised Detection(CVPR2018)阅读笔记
- UE4中的字符串转换
- PHP群发300万,mysql 300万数据查询500多秒如何优化
- JVM系列一:JVM内存组成及分配
- Myeclipse10如何进行代码提示和自动补全
- Spring Security:自动登录(降低安全风险)
- 小米note3如何打开usb调试
- 戴尔 微博 服务器 销售,微博营销案例之戴尔
- java还原三阶魔方_魔方小站四阶魔方教程2 一看就懂的魔方教程(魔方玩法视频教程+还原公式一步一步图解+3D动画)...
- 测试网络SNMP连接的几个方法(我平时调试SNMP程序时用到的几个解决方案)
- Java向word文档中添加水印
- 基于ESP32的开源定时浇花系统
- 在手机桌面隐藏App的Icon并启动该App
- 墨珩科技荣获“高新技术企业”认定
- 全球最大的3D数据集公开了!标记好的10800张全景图 | 附论文