1、以管理员身份打开cmd窗口,定位到MySQL安装目录下的bin目录,输入net stop mysql 回车,关闭MySQL数据库。
![](https://img-blog.csdnimg.cn/20200511162306638.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
2、输入mysqld --console --skip-grant-tables --shared-memory(mysqld –skip-grant-tables在MySQL8.0中已失效)回车。
(--skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证)
![](https://img-blog.csdnimg.cn/20200511162711589.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
3、重新打开一个命令行窗口,定位到MySQL安装目录下的bin目录,输入mysql回车。
![](https://img-blog.csdnimg.cn/20200511163155304.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
4、输入use mysql 回车。
![](https://img-blog.csdnimg.cn/2020051116334945.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
5、输入以下命令,将authentication_string字段置为空(注:在MySQL8.0以上版本,无法使用 update user set password=password('newpassword') where user='root';)。
update user set authentication_string='' where user='root';
![](https://img-blog.csdnimg.cn/20200511171428838.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
6、输入以下命令修改密码
alter user 'root'@'localhost' identified by '123456';
我这里报错了:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement。
![](https://img-blog.csdnimg.cn/20200511172554988.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
解决方法,先输入 flush privileges; 命令,刷新一下权限表。
![](https://img-blog.csdnimg.cn/20200511173043264.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
再重新输入修改密码的命令,成功了。
![](https://img-blog.csdnimg.cn/20200511173152292.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
7、再刷新一下权限表:
![](https://img-blog.csdnimg.cn/20200511173350536.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)
8、输入 net start mysql 重新启动MySQL,输入mysql -u root -p 输入新密码登录MySQL,成功。
![](https://img-blog.csdnimg.cn/20200512085804777.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbHkyMzM=,size_16,color_FFFFFF,t_70)