主要用于防止暴力破解,同一个用户登录达到一定次数后,将对该账户进行锁定。 需要用到MySQL的`connection_control`插件,这个插件MySQL已经包含在插件目录中,但是需要我们自己加载它。 使用管理员账户登录MySQL,然后加载插件: ``` install plugin CONNECTION_CONTROL soname 'connection_control.so'; install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so'; ``` 设置插件的参数: ``` set global connection-control-failed-connections-threshold=3 set global connection-control-min-connection-delay=300000 ``` 为了永久生效,加入my.ini配置文件: ``` plugin-load-add=connection_control.so connection-control-failed-connections-threshold=3 #登陆失败次数限制 connection-control-min-connection-delay=300000 #限制重试时间,此处为毫秒,注意按需求换算,此处为5分钟 ``` 参数解析: - connection_control_failed_connections_threshold 失败登陆次数达到此值后触发延迟。值域:[0, INT_MAX32(2147483647)],0表示关闭此功能。默认值为5。 - connection_control_max_connection_delay 登陆发生延迟时,延迟的最大时间;此值必须大于等于connection_control_min_connection_delay。值域:[1,INT_MAX32(2147483647)]。默认值:INT_MAX32。单位:毫秒。 - connection_control_min_connection_delay 登陆发生延迟时,延迟的最小时间,此值必须小于等于connection_control_max_connection_delay。值域:[1000, INT_MAX32(2147483647)]。默认值:1000。单位:毫秒。 **延迟的时间如何计算** 一旦连续的失败登陆次数超过设定阈值,那么就会产生延迟,并且延迟随着失败次数增加而增加,上限为connection_control_max_connection_delay;具体的计算方式如下:MIN ((failed_attempts - threshold) * MIN_DELAY), MAX_DELAY)。 Loading... 主要用于防止暴力破解,同一个用户登录达到一定次数后,将对该账户进行锁定。 需要用到MySQL的`connection_control`插件,这个插件MySQL已经包含在插件目录中,但是需要我们自己加载它。 使用管理员账户登录MySQL,然后加载插件: ``` install plugin CONNECTION_CONTROL soname 'connection_control.so'; install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so'; ``` 设置插件的参数: ``` set global connection-control-failed-connections-threshold=3 set global connection-control-min-connection-delay=300000 ``` 为了永久生效,加入my.ini配置文件: ``` plugin-load-add=connection_control.so connection-control-failed-connections-threshold=3 #登陆失败次数限制 connection-control-min-connection-delay=300000 #限制重试时间,此处为毫秒,注意按需求换算,此处为5分钟 ``` 参数解析: - connection_control_failed_connections_threshold 失败登陆次数达到此值后触发延迟。值域:[0, INT_MAX32(2147483647)],0表示关闭此功能。默认值为5。 - connection_control_max_connection_delay 登陆发生延迟时,延迟的最大时间;此值必须大于等于connection_control_min_connection_delay。值域:[1,INT_MAX32(2147483647)]。默认值:INT_MAX32。单位:毫秒。 - connection_control_min_connection_delay 登陆发生延迟时,延迟的最小时间,此值必须小于等于connection_control_max_connection_delay。值域:[1000, INT_MAX32(2147483647)]。默认值:1000。单位:毫秒。 **延迟的时间如何计算** 一旦连续的失败登陆次数超过设定阈值,那么就会产生延迟,并且延迟随着失败次数增加而增加,上限为connection_control_max_connection_delay;具体的计算方式如下:MIN ((failed_attempts - threshold) * MIN_DELAY), MAX_DELAY)。 最后修改:2023 年 08 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏