出现这个错误的原因主要是MySQL8.0之后的版本加密规则发生了改变,mysql8.0之前的版本加密规则是mysql_native_password,mysql8.0之后,加密规则是caching_sha2_password。这样的话就需要我们去dos命令窗口对加密规则进行一下更新(这里要提示一下,如果没有配置MySQL的环境变量,就无法直接在dos窗口对mysql进行操作,所以需要提前配置好环境变量)。解决方法如下:
(1). 管理员权限运行命令提示符,登陆MySQL(记得添加环境变量)
mysql -u root -p
(2). 修改账户密码加密规则并更新用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码
(3). 刷新权限并重置密码
FLUSH PRIVILEGES; #刷新权限
单独重置密码命令:alter user 'root'@'localhost' identified by '111111';