MySQL设置只读模式

常见现象:



  运维工作中会经常维护MySQL主从服务器,当然从库我们只是用于读的。

一般权限开通也只授权只读账号,但是有时候维护工作可能不是一个人在做,你不能保证所有都按照这个标准操作。

有同事可能会授权Slave库MySQL账号为all或者select,update,insert,delete。还有一种情况是主从做了对所有数据的同步,在主库上面授权的账号也同步到了从库上面,当然Master账号中肯定会有select,update,insert,delete权限。

存在的问题:



  那么问题来了,当运维人员或者开发人员程序错误的连接了Mysql把Slave当成了Master等情况,那么就悲催了所有的数据修改就到操作了Slave。

为了避免上述问题,我们需要给MySQL的Slave设置为只读模式。

解决方法:



演示如下:

mysql> set global read_only=1;
Query OK, 0 rows affected (0.00 sec)

授权普通MySQL测试账号

mysql> grant select,insert,update,delete on s18.* to ‘test‘@‘127.0.0.1‘ identifi
ed by ‘123456‘;
Query OK, 0 rows affected, 1 warning (0.00 sec)

用测试账号登陆进行删除等操作,会提示--read-only错误

mysql> delete from student where sid=14;
ERROR 1290 (HY000): The MySQL server is running with the --read-only option so i
t cannot execute this statement

mysql> insert class values(5,三年级十班);
ERROR 1290 (HY000): The MySQL server is running with the --read-only option so i
t cannot execute this statement

注意:set global read_only=1 对拥有super权限的账号是不生效的,所以在授权账号的时候尽量避免添加super权限

时间: 2024-10-19 19:24:34

MySQL设置只读模式的相关文章

桌面支持--excel2013设置只读模式

excel2013设置只读模式

数据库设置只读模式

alter database 数据库名 set READ_only alter database 数据库名 set READ_write 原文地址:https://www.cnblogs.com/xiaowie/p/8674768.html

redis 设置为只读模式

数据库的只读模式,对于在系统出现重大故障,但是又不影响用户的查询操作还是很重要的 对于redis 设置只读模式需要分不同的场景 master-slave cluster single master-slave 模式 这个就比较简单的了,可以使用哨兵自动解决,或者通过命令行 slaveof host port 命令 cluster 模式 集群模式当前包含了readonly,readwrite ,我们直接可以通过命令解决 单机模式 原理实际上很简单,slaveof 设置为自身,然后就只读了,因为sl

Word 只读模式修改

一.设置只读模式: 方法一: 打开目标文件,点击另存为,如下: 2.点击常规选项,勾选'建议以只读方式打开文档,也可以在此页给文档加密: 方法二: 在工具栏-->审阅--->限制编辑: 二.更改只读模式 法一: 右击目标文件,选择属性: 法二: 同标题一,在限制编辑里面修改 原文地址:https://www.cnblogs.com/jasonjan/p/10316005.html

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

在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系. 经过实际测试,对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置:      将MySQL设置为只读状态的命令:# mysql -uroot -pmysql> show global variables like "%read_only%";mysql> flush tables with read lock;mysq

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

在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系. 经过实际测试,对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置: 将MySQL设置为只读状态的命令: # mysql -uroot -p mysql> show global variables like "%read_only%"; mysql> flush tables with read lock; mysql

通过KeepAlived搭建MySQL双主模式的高可用集群系统

企业级MySQL集群具备高可用.可扩展.易管理.低成本的特点.下面将介绍企业环境中经常应用的一个解决方案,即MySQL的双主互备架构,主要设计思路是通过MySQL Replication技术将两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制.这样就实现了高可用构架中的数据同步功能,同时,将采用KeepAlived来实现Mysql的自动failover.在这个构架中,虽然两台MySQL Server互为主从,但同一时刻只有一个MySQL Ser

Mysql的SQL模式

Mysql在5.6版本以后默认的SQL模式是STRICT_TRANS_TABLES,对数据的严谨性和一致性上比之前版本要有所提升. 一.查看当前sql模式 mysql> select @@sql_mode; +--------------------------------------------+ | @@sql_mode | +--------------------------------------------+ | STRICT_TRANS_TABLES,NO_ENGINE_SUBST

mysql SQL服务器模式

MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式.这样每个应用程序可以根据自己的需求来定制服务器的操作模式. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查.这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL. 你可以用--sql-mode="modes"选项启动mysqld来设置默认SQL模式.如果你想要重设,该值还可以为空(--sql-mode =""). 你还可以在启动后用SET