1、 问题背景
这个patch基于这样的需求:
a) 在MySQL刚刚启动时,有些情况下DBA希望能够先做一些操作,然后再允许应用连接进来。
b) 在一个全长连接高并发的服务出现一些特别耗费资源,导致影响整机服务的连接,kill以后客户端马上又连上来,“杀不掉”
因此考虑如果有个开关能够暂时禁止普通用户连接,能够满足上述两个需求。
2、 基本功能
基本功能包括以下:
a) 提供一个变量,当设置为on时,只允许有SUPER权限的用户连接;
b) my.cnf中能够直接配置初始值, 使得启动时只有权限满足的用户才能连接;
c) 正常执行过程中能够动态修改。
d) 从ON修改为OFF的时候,不影响现存的连接。
e) 拥有SUPER以上权限的才能通过命令行修改此值。
从描述看来需求确实简单,其实看代码更简洁。
http://bugs.mysql.com/file.php?id=18015&text=1
基于5.5.22。用别的版本的同学可以自己改,有效代码只有十几行。
3、 效果