1、以管理员身份打开cmd窗口,定位到MySQL安装目录下的bin目录,输入net stop mysql 回车,关闭MySQL数据库。
2、输入mysqld --console --skip-grant-tables --shared-memory(mysqld –skip-grant-tables在MySQL8.0中已失效)回车。
(--skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证)
3、重新打开一个命令行窗口,定位到MySQL安装目录下的bin目录,输入mysql回车。
4、输入use mysql 回车。
5、输入以下命令,将authentication_string字段置为空(注:在MySQL8.0以上版本,无法使用 update user set password=password('newpassword') where user='root';)。
update user set authentication_string='' where user='root';
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。
解决方法,先输入 flush privileges; 命令,刷新一下权限表。
再重新输入修改密码的命令,成功了。
7、再刷新一下权限表:
8、输入 net start mysql 重新启动MySQL,输入mysql -u root -p 输入新密码登录MySQL,成功。