• mysql限制用户登录失败次数,限制时间


    mysql用户登录限制设置

    mysql 需要进行用户登录次数限制,当使用密码登录超过 3 次认证链接失败之后,登录锁住一段时间,禁止登录这里使用的 mysql: 8.1.0
    这种方式不用重启数据库.
    配置:
    首先进入到 mysql 命令行:然后需要安装两个插件:
    在 mysql 命令行中执行:

    mysql> INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
    Query OK, 0 rows affected (0.16 sec)
    mysql> INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
    Query OK, 0 rows affected (0.11 sec)
    
    • 1
    • 2
    • 3
    • 4

    然后查看该插件设置:

    
    mysql> show variables  like 'connection_%' ;
    +-------------------------------------------------+----------------------+
    | Variable_name                                   | Value                |
    +-------------------------------------------------+----------------------+
    | connection_control_failed_connections_threshold | 3                    |
    | connection_control_max_connection_delay         | 2147483647           |
    | connection_control_min_connection_delay         | 1000                 |
    | connection_memory_chunk_size                    | 8192                 |
    | connection_memory_limit                         | 18446744073709551615 |
    +-------------------------------------------------+----------------------+
    5 rows in set (0.16 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    这里面需要注意,他有两个时间,min 是表示锁住的最短时间,而 max 是为最大时间,防止永远不能登录的尴尬情况.这里针对我们的需求只需要设置 min 对应的时间就可以了.

    在网上找到了大部分博客,在设置这个插件时间的时候都说是需要重启服务器,然后还有 my.cnf 中编辑,才能生效,但我需要操作线上环境肯定是不能重启的,而且也只有数据库服务器没有配置文件,这里采用下面的命令进行设置, 这里的单位是毫秒,我这里测试设置了 10 秒钟禁止登录.

    SET GLOBAL connection_control_min_connection_delay = 10000;
    Query OK, 0 rows affected (0.00 sec)
    mysql> show variables  like 'connection_%' ;
    +-------------------------------------------------+----------------------+
    | Variable_name                                   | Value                |
    +-------------------------------------------------+----------------------+
    | connection_control_failed_connections_threshold | 3                    |
    | connection_control_max_connection_delay         | 2147483647           |
    | connection_control_min_connection_delay         | 10000                |
    | connection_memory_chunk_size                    | 8192                 |
    | connection_memory_limit                         | 18446744073709551615 |
    +-------------------------------------------------+----------------------+
    5 rows in set (0.01 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    到这里服务器端就设置完成了,然后使用另外的客户端连接测试请添加图片描述
    注意: 当这次验证失败之后,锁释放之后.你再次输入密码.不管正确与否,都会锁住一段时间,这个时间就是上面设置的 min 时间.然后才会进行认证,如果正确就会登录成功,如果错误,就会再次锁住.,所以这个时间设置需要注意/

  • 相关阅读:
    《C++primer》第八章课后习题
    监控——前端性能监控方案
    信息学奥赛一本通:1308:【例1.5】高精除
    Python-使用sqlite3模块
    Java 地心地固坐标系转经纬度(WGS-84大地坐标)
    手动写一个搜索引擎(超详细)
    KES服务管理和环境变量配置(Kylin)
    义乌个体户
    「学习笔记」组合计数与中国剩余定理
    Python飞机大战小游戏
  • 原文地址:https://blog.csdn.net/qq_59369367/article/details/133136307