转载请注明出处,如果您觉得文章有用,就赏我个鸡腿吧!
正文
- 添加mysql不鉴权命令
vim /etc/my.cnf
#在[mysqld]下添加
skip-grant-tables
#保存退出
- 重启mysqld
systemctl restart mysqld
- 进入mysql服务
mysql -uroot -p
#直接按回车进入,无需密码
- 重设密码
flush privileges; ①
alter user 'root'@'localhost' identified by 'yourpassword'
flush privileges;
- 重启mysqld
systemctl restart mysqld
好了,以上就是重设mysql密码的步骤
扩展知识
- 在设置密码时,如果密码太短,或者密码强度不达标时,会报错
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这是因为在validate_password*
的参数在校验密码强度,此时可以通过修改该值来解决问题。
set global validate_password.policy=0;
其他参数参考上述方法设置
字段 | 8.0默认值 | 意义 |
---|---|---|
validate_password.check_user_name | ON | 设置为ON的时候表示能将密码设置成当前用户名 |
validate_password.dictionary_file | 用于检查密码的字典文件的路径名,默认为空 | |
validate_password.length | 8 | 密码的最小长度,也就是说密码长度必须大于或等于8 |
validate_password.mixed_case_count | 1 | 如果密码策略是中等或更强的,validate_password要求密码具有的小写和大写字符的最小数量。对于给定的这个值密码必须有那么多小写字符和那么多大写字符。 |
validate_password.number_count | 1 | 密码必须包含的数字个数 |
validate_password.policy | LOW | 密码强度检验等级,可以使用数值0、1、2或相应的符号值LOW、MEDIUM、STRONG来指定。 0/LOW:只检查长度。 1/MEDIUM:检查长度、数字、大小写、特殊字符。 2/STRONG:检查长度、数字、大小写、特殊字符、字典文件。 |
validate_password.special_char_count | 1 | 密码必须包含的特殊字符个数 |
①: 先要执行
flush privileges
是因为,重启时skip-grant-tables
命令导致权限表没有加载,使用其加载权限表,之才可以修改,否则会报错如下:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement