1.情况如下:

原因是Mysql8.0的默认认证方式改用sha2了,但是我的Navicat 12 for MySQL和SQLyog里面都没有sha2的插件,所以报错了。

如果忘记密码,可以在mysql的.my.ini 里面配置该参数,可以跳过密码验证:

[mysql] 
skip-grant-tables

2.通过cmd登录mysql

mysql -u root -p
use mysql; 
SELECT Host, User, plugin from user;

可以看到 root 用户的验证器插件为 caching_sha2_password

3.修改身份验证类型(修改密码) :xxxxx为自己的密码

ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'xxxxx';

4.使生效

FLUSH PRIVILEGES;

5.验证是否生生效:

 

更多推荐