MySQL数据库的一些设置(密码过期策略、密码错误次数限制)

MySQL数据库的一些设置

分享个人在学习生活中总结的一些学习记录。



一、MySQL设置密码过期策略

在xshell界面通过mysql -uroot -p指令进入登录mysql的界面,或者在数据库连接工具如Navicat等,登录mysql之后,在命令行界面输入如下的命令:

use mysql;   #选择mysql数据库
select user,host,password_expired,password_last_changed,password_lifetime from user;  #查看mysql用户的密码是否过期及过期时间
update user set password_lifetime = 30 where user='test';  #将test用户的密码过期时间设置为30天
flush privileges;   #刷新系统权限相关表

如下图:
在这里插入图片描述

此时test用户的密码过期时间就被设置为30天。其他用户的密码过期时间设置同上,此外还可以通过数据库连接工具如:Navicat等使用root用户登录,找到mysql数据库中的user表直接对该表的数据进行修改。(谨慎修改)。

二、MySQL数据库设置登录密码次数限制

要给mysql数据库设置该策略,需要先安装插件。登录mysql之后,在命令行界面输入以下两条命令来安装插件(注:mysql> 之后的才是指令,其余的均为信息提示,下同):

mysql> INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
Query OK, 0 rows affected (0.40 sec)
mysql> INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
Query OK, 0 rows affected (0.01 sec)
#查看该插件的配置参数
mysql> show variables like "connection_control%";
+-------------------------------------------------+------------+
| Variable_name                                   | Value      |
+-------------------------------------------------+------------+
| connection_control_failed_connections_threshold | 3          |
| connection_control_max_connection_delay         | 2147483647 |
| connection_control_min_connection_delay         | 1000       |
+-------------------------------------------------+------------+
3 rows in set (0.00 sec)

#各参数解释
参数含义:
connection_control_failed_connections_threshold #单个用户登录失败(由于密码错误引起)次数上限,默认3次
connection_control_max_connection_delay  #失败上限之后再次尝试登录前最大等待时间,单位ms
connection_control_min_connection_delay  #失败上限之后再次尝试登录前最小等待时间,默认1秒(1000ms)
#上述3个参数均可以利用 set global 的方式在线修改。

以上是该插件的默认配置,可以自定义设置自己想要设置的策略,操作如下:

mysql> set global connection_control_failed_connections_threshold=5;  #单个用户密码错误登录失败次数上限设置为5次
Query OK, 0 rows affected (0.00 sec)

mysql> set global connection_control_min_connection_delay=30000;   #失败上限之后30s之后才能再次尝试登录
Query OK, 0 rows affected (0.00 sec)

#查看设置情况
mysql> show variables like "connection_control%";
+-------------------------------------------------+------------+
| Variable_name                                   | Value      |
+-------------------------------------------------+------------+
| connection_control_failed_connections_threshold | 5          |
| connection_control_max_connection_delay         | 2147483647 |
| connection_control_min_connection_delay         | 30000      |
+-------------------------------------------------+------------+
3 rows in set (0.00 sec)

上述配置完成后,即可实现用户登录mysql密码错误一定次数之后,再次输入错误密码,该连接将会被挂起无响应。此外,可以通过如下SQL查看受限用户清单,包括来源用户、IP和登录失败次数

mysql> use information_schema;  
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

mysql> select * from connection_control_failed_login_attempts;
Empty set (0.00 sec)
#以下指令为卸载该插件的操作
mysql> UNINSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
mysql> UNINSTALL PLUGIN CONNECTION_CONTROL;

总结

MySQL的设置由于自己还在学习中,先暂时写这两种配置,以后学到了其他的配置,再对本文章进行更新。

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值