MySQL 2059问题的解决

现象:用navicat连接MySQL8+时会出现2059错误

原因:这是由于在mysql8之前的版本中加密规则为mysql_native_password,而mysql8以后版本的MySQL使用的是caching_sha2_password验证方式,但此时的navicat还没有支持这种验证方式。

解决方法:一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password。本文采用第二种方式。

解决过程:

  1. 在命令行中登录数据库时不会出现2059错误,所以在命令行中登录数据库,
  2. 执行下面的命令。 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 
  3. 刷新权限。 FLUSH PRIVILEGES; 
  4. 问题解决。

注意:'root'可以改为你自己定义的用户名,'localhost'指的是该用户开放的IP,可以是'localhost'(仅本机访问,相当于127.0.0.1),可以是具体的'*.*.*.*'(具体某一IP),也可以时'%'(所有IP均可访问,一般修改为%)。'password'是你想使用的验证密码。需要根据实际情况替换成自己的实际配置。

 

 

posted @ 2021-03-13 15:42  北漂的尘埃  阅读(579)  评论(1编辑  收藏  举报