目前我们在使用MySQL的时候,没有对连接次数进行限制,如果碰到一些非正常链接时,不仅会影响MySLQ性能,而且会生成很多垃圾日志。
MySQL其实已经提供了连接控制的插件(CONNECTION_CONTROL),但是需要自己配置开启。
首先,只有MySQL 5.7.17及之后的版本才会有这个插件,之前的还没有。
![1b43d5821431d6d04652bb1dccbab781.png](https://i-blog.csdnimg.cn/blog_migrate/5459d9ec5d6f7d9793a3007a141f83b0.jpeg)
首先使用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`
![187793068fdcced2d059591a86ef3988.png](https://i-blog.csdnimg.cn/blog_migrate/8113658b9950f289156f625572488e89.jpeg)
安装完成后,修改 `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次之后,再连接就会一直等待。
参考地址1: https:// dev.mysql.com/doc/refma n/5.7/en/connection-control-installation.html
参考地址2: https:// blog.csdn.net/ywd1992/a rticle/details/83865537
参考地址3: https:// kaispace.cn/? p=258