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输入刚设置的密码,完成登陆