出现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,发现连接成功.

最后祝你好运!
本文介绍了解决MySQL连接错误2059的方法,该错误通常发生在MySQL 8之后的版本中,由于默认加密规则更改为caching_sha2_password而导致。解决方案包括通过命令行更改用户的认证方式为mysql_native_password。
3448

被折叠的 条评论
为什么被折叠?



