一
原因是mysql服务器要求的认证插件版本与客户端不一致造成的。
二
由于我是最新的mysql和破解版的navicat,那么就是mysql太高级了。
解决方法有两个,我毫不犹豫的选择mysql降级....
三
装了个低版本的mysql,ok,能用。但是,我日常钻牛角尖。。。
查询mysql的认证插件
select user.plugin from mysql.user
可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:
然后低版本的root用户使用的plugin是mysql_native_password,而且明显mysql8也支持mysql_native_password,那么解决方法很简单啦
根据mysql官方的例子
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
也可以是update语句
update mysql.user set plugin='mysql_native_password' where user= 'root';