Mysql 8.0重置数据库密码,史上最全步骤!
程序员文章站
2022-06-06 23:02:37
...
1.关闭Mysql服务
2 管理员运行 cmd窗口,并进入mysql目录
3 以安全模式启动启动Mysql
**注意:**由于mysqld –skip-grant-tables
实测在mysql8.0中已失效,
现使用mysqld --console --skip-grant-tables --shared-memory
至此此CMD窗口放置不动 ,不要关闭,重现管理员身份打开新的CMD
4 登陆mysql服务(另外新开一个cmd窗口)
mysql -uroot -p
提示输入密码时直接回车。
MySql 从8.0开始修改密码,在user表加了字段authentication_string,修改密码前先置为空
use mysql;
update user set authentication_string='' where user='root';--将字段置为空
ALTER user 'root'@'localhost' IDENTIFIED BY 'root';
到了这一步你以为大功告成了吗?
错!
你可能会发现报了个错
这是为什么呢 ?
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;
刷新一下权限表再执行修改语句
大功告成 !!!!