出现2059这个错误的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。通过网络查找发现我们可以将mysql用户登录的加密规则修改为mysql_native_password。
解决方法:
1.打开cmd,用命令行登陆mysql,使用mysql -u root -p命令;
2.输入登陆密码;
3.输入命令:第一条: ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
第二条: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
注意此处的password为你的登陆密码,本人的操作为:
第一条: ALTER USER 'root'@'localhost' IDENTIFIED BY '123****' PASSWORD EXPIRE NEVER;
第二条: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123****';
让后打开navicat,发现连接成功.
最后祝你好运!