前言
前不久写了一篇关于如何安装MySQL 8.0.22并进行相关操作的文章,有兴趣的可以参考:最新版MySQL 8.0.22(Windows 64位)下载安装详细方法.
今天遇到了另一个问题:忘记了MySQL的密码,花了很长时间才处理好,这里将方法总结出来,希望对有需要的朋友有所帮助。
话不多说,以管理员身份进入cmd窗口后(C:\Windows\System32\cmd,可以参考我的安装方法博客详细查看如何以管理员身份进入cmd),简单粗暴直接上需要的命令行:
1. 输入net stop mysql
如果MySQL服务已经开启,则运行该语句停止。
2. 输入mysqld --console --skip-grant-tables --shared-memory
可能有些小伙伴在其他博客上看到输入“mysqld --skip-grant-tables”,但这是老版本的方法了,不适用于该8.0.22版本。
3. 打开另一个cmd窗口
不要关闭当前窗口,另外以管理员身份打开一个cmd窗口。
4. 依次执行下列命令行
mysql
use mysql
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
flush privileges;
这里有两点需要注意:
第一,可能有小伙伴看到其他博客上写的更新密码的命令行为“update user set password=password(“123456”) where user=“root”; ”或者“ update mysql.user set authentication_string=PASSWORD(“123456”) where user=“root” and host=“localhost”; ”等等,这些在cmd窗口输入后会报错,因为这些是老版本的修改命令,不适用于现在的版本。
第二,ALTER USER 修改完密码后一定要记得执行命令行 “ flush privileges; ”。
5. 输入quit 或exit退出
6. 输入mysqladmin -u root -p shutdown,并在出现的“Enter password”后输入新密码
7. 输入net start mysql
重启MySQL
至此,修改密码成功,可以正常登陆了。下面是修改过程截图:
总结
注意老版本命令和新版本命令行的区别。