今天使用Navicat连接mysql的时候报了2059的错误,为了解决这个看似不难的问题,我也是试了不少方法,在这里给大家分享下我的经验。
首先出现2059这个错误的原因是因为在mysql8之前的版本中加密规则为mysql_native_password。但是在mysql8以后的加密规则为caching_sha2_password。通过在网络上查找各种解决办法,我们可以将mysql用户登录的加密规则进行修改。修改为mysql_native_password。
Win+R 打开 cmd命令行(Windows为例,Mac类似);
mysql -uroot -p
登陆mysql,如果提示commod not found,那我们需要先将mysql加入系统环境变量。(如果提示 不是内部或外部命令,那么我们需要加入系统环境变量 具体请参照:Mysql系统环境变量配置) ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER
来修改加密规则。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'
更新一下我们用户的密码。