欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql 8.0重置数据库密码,史上最全步骤!

程序员文章站 2022-06-06 23:02:37
...

1.关闭Mysql服务

Mysql 8.0重置数据库密码,史上最全步骤!

2 管理员运行 cmd窗口,并进入mysql目录

Mysql 8.0重置数据库密码,史上最全步骤!

3 以安全模式启动启动Mysql

 **注意:**由于mysqld –skip-grant-tables
 实测在mysql8.0中已失效,
 现使用mysqld --console --skip-grant-tables --shared-memory

Mysql 8.0重置数据库密码,史上最全步骤!至此此CMD窗口放置不动 ,不要关闭,重现管理员身份打开新的CMD

4 登陆mysql服务(另外新开一个cmd窗口)

mysql -uroot -p
提示输入密码时直接回车。Mysql 8.0重置数据库密码,史上最全步骤!
MySql 从8.0开始修改密码,在user表加了字段authentication_string,修改密码前先置为空

use mysql; 
 
update user set authentication_string='' where user='root';--将字段置为空
 
ALTER user 'root'@'localhost' IDENTIFIED BY 'root';

到了这一步你以为大功告成了吗?
错!
你可能会发现报了个错
Mysql 8.0重置数据库密码,史上最全步骤!

这是为什么呢 ?

mysql> use mysql;
查询一下user 表
mysql> select user,host from user;

你会发现

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+

注意我的root,host是'%'

修改语句

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
如果还是失败
mysql> flush privileges;
刷新一下权限表再执行修改语句

Mysql 8.0重置数据库密码,史上最全步骤!
大功告成 !!!!