Linux中mysql8.0.2修改密码

[root@iZbp1ajqzkbhcq19bdoswlZ ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core) 

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.26    |
+-----------+
1 row in set (0.00 sec)

登录mysql报错,无法登录

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

1,跳过密码验证进入mysql

vim /etc/my.cnf(注:windows下修改的是my.ini)

在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
保存退出,点击ESC 使用 :wq!
2,使用 service mysqld restart 重启MySQL服务
3,免密码登陆(注:敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中)
4,flush privileges;(首先更新权限)
5,修改新密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;
如果保存

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

原因是因为密码设置的过于简单会报错,MySQL有密码设置的规范,具体是与validate_password_policy的值有关,
查看密码校验插件

SHOW VARIABLES LIKE 'validate_password%';

修改密码长度

set global validate_password.length=4;
# set global validate_password_length=4;

修改密码的验证策略,默认等级为MEDIUM(中等),可修改为LOW(低)

set global validate_password.policy=0;
# 有的是set global validate_password_policy=0;

6.quit;或者exit;退出
7.使用vim /etc/my.cnf命令把 my.cnf中添加的skip-grant-table删除
8.重启MySQL输入刚设置的密码,完成登陆

posted @ 2022-01-04 16:04  下个ID见  阅读(73)  评论(0编辑  收藏  举报