码迷,mamicode.com
首页 > 数据库 > 详细

MySQL设置只读模式

时间:2017-09-25 09:47:09      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:update   weight   连接   操作   从库   code   方法   err   lob   

常见现象:


  运维工作中会经常维护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权限

MySQL设置只读模式

标签:update   weight   连接   操作   从库   code   方法   err   lob   

原文地址:http://www.cnblogs.com/xiewenming/p/7590335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!