mysql密码校验策略

1.首先安装完MySQL8之后使用 cat /var/log/mysqld.log |grep password 查看 mysql 密码。

[root@localhost]# cat /var/log/mysqld.log |grep password
2021-03-18T03:16:20.510105Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dKhxQ.Bj9ou*

2.之后使用 mysql -uroot -p 命令登录 mysql 修改密码。

[root@localhost opt]# mysql -uroot -p
Enter password:

3.使用 alter user 命令修改密码。

mysql> alter user 'root'@'localhost' identified by 'dKhxQ.Bj9ou';

如果想设置简单的密码,需要修改 MySQL 的密码策略,但是如果是第一次登录 MySQL,则需要先修改密码才可以输入命令。如果没有修改密码,对数据库执行操作则会报错:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

这个时候如果直接修改密码,便会触发 MySQL 的安全效验问题:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

4.查看 MySQL 初始的密码策略。

mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

5.设置密码的验证强度等级,设置 validate_password.policy 的全局参数。

mysql> set global validate_password.policy=LOW;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

6.设置密码长度参数是 validate_password.length。

mysql> set global validate_password.length=6;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

7.现在便可以为 MySQL 设置简单的密码了,只需满足六位的长度即可。

mysql> alter user 'root'@'localhost' identified by '111111';
Query OK, 0 rows affected (0.03 sec)

8.关于 MySQL 密码策略相关参数。

1. validate_password.dictionary_file     指定密码验证的文件路径;
2. validate_password.length     固定密码的总长度;
3. validate_password.mixed_case_count     整个密码中至少要包含大/小写字母的总个数;
4. validate_password.number_count     整个密码中至少要包含的阿拉伯数字的个数;
5. validate_password.policy     指定密码的强度验证等级,默认为MEDIUM;
6. validate_password.special_char_count     整个密码中要包含的特殊字符的最小个数;

关于 validate_password.policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件、;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值