您好,欢迎来到尚佳旅游分享网。
搜索
您的当前位置:首页Navicat连接docker的mysql出现1251或者2059的错误Client does not support authentication protocol requested by

Navicat连接docker的mysql出现1251或者2059的错误Client does not support authentication protocol requested by

来源:尚佳旅游分享网

问题描述

在docker上新安装的mysql的容器,使用win10的workbench可以连接访问,但是使用Navicat连接就会报错。

报错信息

在navicat11版本下报错1251Client does not support authentication protocol requested by server

在navicat12版本下报错2059 Authentication plugin 'caching_sha2_password' cannot

问题分析

初步分析

我记得在以前使用mysql5.7版本的容器时,是没有出现这样的问题。所以先查询了下当前mysql的版本。

解决步骤

经过一番百度探索得知:

原因是docker mysql为最新的,更换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password),即版本不兼容问题

docker exec -it mysql bash;
mysql -uroot -p;
输入密码
  1. 进入mysql后,命令下更改mysql加密方式(将密码设置为永不过期模式);
alter user 'root'@'localhost' identified by 'yourpassword' password expire never;

yourpassword为你自己mysql的密码

  1. mysql_native_password设置新密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newyourpassword';

newyourpassword为你自己mysql的新密码

  1. 刷新权限让更改的数据文件立即生效;
flush privileges;

百度到的问题解决方案,到这里就可以解决问题,但是我的问题还是没有解决,继续…


还是在mysql的命令行模式下继续解决问题,(如果不在,进入mysql容器,重新登录)

  1. 使用mysql的数据库,查询其user用户的基本属性信息
use mysql;
select user,host,plugin,authentication_string from user;

  1. 修改root用户的 host为% 的密码加密方式,并刷新权限
alter user 'root'@'%' identified with mysql_native_password by 'yourPassword';
flush privileges;
  1. 再次查询user用户的信息
select user,host,plugin,authentication_string from user;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- shangjiatang.cn 版权所有 湘ICP备2022005869号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务