mysql版本:8.0.28
问题:用 root 用户登录报错提示:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor=YES)
解决方案:
第一步,以管理员身份打开 cmd 窗口(一般在这 C:\Windows\System32\cmd.exe)
第二部,切换到 mysql 安装目录的 bin 目录下
第三步,输入 net stop mysql 回车(停止服务)
第四步,输入 mysqld --console --skip-grant-tables --shared-memory (跳过密码验证登录,输完回车后界面会卡住等待的,如果没有等待就再重新开一个窗口进入到 bin 目录再执行第四步)
第五步,再以管理员身份打开一个新的 cmd 窗口,同样切换到 mysql 安装目录的 bin 目录下
第六步,输入 mysql -u root -p(登陆mysql)
第七步,输入 use mysql (选择数据库)
第八步,输入 update user set authentication_string='' where user='root'; (置空密码)
第九步,输入 select host, user, authentication_string from mysql.user; (查看是否置空密码)
第十步,输入 flush privileges; (刷新权限)
第十一步,关掉前面两个 cmd 窗口,重新以管理员身份打开一个新的 cmd 窗口,再切换到 mysql 安装目录的 bin 目录下
第十二步,输入 net start mysql(启动服务)
第十三步,输入 mysql -uroot -p
第十四步,提示密码不用输入任何东西,直接回车登录即可,因为上面我们已经把密码置空
===到这里已经能登录成功了,所以已经解决不能登录的问题了,如果想用密码登录则继续往下看
=========================================================================
第十五步,输入 alter user user() identified by "新的密码";
第十六步,输入 flush privileges;
第十七步,输入 exit (退出 mysql)
第十八步,输入 net stop mysql
第十九步,输入 net start mysql 启动服务
第二十步,输入 mysql -uroot -p
第二十一步,输入新密码
===到这里也能用新密码登录成功了
如有不正请指教,希望对遇到此问题的猿友有帮助