前言
关于Navicat连接MySQL出现2059错误解决方法
一、问题原因:
如上图的报错提示可知,报错原因是caching_sha2_password不能加载。
这是因为8.0之后mysql更改了密码的加密规则,而目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。
二、解决步骤:
1.进入容器
我这里mysql是安装再docker里面的 docker ps //查看正在运行的容器 docker exec -it 43e99 bash //进入容器内部
2.登录mysql
mysql -uroot -p //登录mysql
3.查看所有用户
//查看所有用户的权限 SELECT User, Host FROM mysql.user; //如果root的host列显示的是localhost可以通过下面的命令更新,改为%表示允许任意host访问 update user set host = '%' where user = 'root';
3.设置新的加密规则
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; //设置新的加密规则 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';//更新用户密码 FLUSH PRIVILEGES;//刷新权限
4.连接Navicat
连接成功