今天使用Navicat连接mysql的时候报了2059的错误,为了解决这个看似不难的问题,查阅了相关资料,现将经验总结如下。
问题分析:
首先出现2059这个错误的原因是因为在mysql8之前的版本中加密规则为mysql_native_password。但是在mysql8以后的加密规则为caching_sha2_password。通过在网络上查找各种解决办法,我们可以将mysql用户登录的加密规则进行修改。修改为mysql_native_password。
具体解决步骤:
(1)Win+R 打开 cmd命令行(Windows为例,Mac类似);
(2)登录成功以后使用ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER来修改加密规则。
(3) 加密规则修改完成后我们可以通过ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'更新一下我们用户的密码。
整个过程如下图所示: