目前我们在使用MySQL的时候,没有对连接次数进行限制,如果碰到一些非正常链接时,不仅会影响MySLQ性能,而且会生成很多垃圾日志。
MySQL其实已经提供了连接控制的插件(CONNECTION_CONTROL),但是需要自己配置开启。
首先,只有MySQL 5.7.17及之后的版本才会有这个插件,之前的还没有。
首先使用mysql命令连接数据库:
mysql -uroot -p
输入密码登录后,使用以下命令加载插件(需要连接互联网):
INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
注意:如果是Unix/Linux系统,需要加载`connection_control.so`,如果是Windows系统,需要加载`connection_control.ddl`
安装完成后,修改 `my.cnf` 或者 `mysqld.cnf` 中的 `mysqld` 模块
[mysqld]
connection_control_failed_connections_threshold=4
connection_control_min_connection_delay=1500
` connection_control_failed_connections_threshold ` 表示连接次数,超过此次数则会进入等待。
` connection_control_min_connection_delay ` 表示等待时间,单位是毫秒。
修改完之后,重启mysql即可,可以尝试一下密码错误超过4次之后,再连接就会一直等待。