在之前的文章MySQL 8.0.11中,密码是保存在err结尾的文件内,但在现今版本中,可能出于安全的考虑不再以明文的方式存储,只有在初始化时,才在控制台中输出:
mysqld --initialize --console
如果你已经错过了控制台输出的密码,那么登录时就会提示:
ERROR 1045(28000): Access denied for user 'root'@'localhost'(using password)
没有其他查看的方法,只能重置密码。
重置方法
如果你的数据库是刚安装,什么都还没有,那么可以删除安装目录下的data文件夹,再执行一次初始和安装的命令即可。
下面我们介绍一种不删除数据的情况下重置密码的方法:
首先,我们需要把服务停止,使用:
net stop mysql
停止服务后,在打上:
mysqld --shared-memory --skip-grant-tables
(注意:以上命令执行后,光标一直在下一行闪烁,就是正常的,不需要等,此时需要打开新的命令窗口操作)
打开新的cmd,cd到安装目录中,直接输入mysql就可以正常启动了
此时如果直接修改密码,会提示该模式下无法操作:
解决方法是先执行:
flush privileges;
然后就可以修改了
SET PASSWORD FOR 'root'@'localhost' = 'password';
如果此时提示:
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
不要怀疑前面的操作,是你的服务停了没有启动,使用 net start mysql 启动即可
参考链接:
https://blog.youkuaiyun.com/baidu_32363401/article/details/81544573