Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > Mysql解决1251 client does not support

Mysql如何解决1251 client does not support问题

作者:乞力马扎罗の黎明

这篇文章主要介绍了Mysql如何解决1251 client does not support问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、客户端使用navicat for mysql

本地安装了mysql 8.0。

但是在链接的时候提示:

主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。

打开mysql命令行输入如下命令查看,系统用户对应的认证插件:

可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:

意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。

plugin的作用之一就是处理后的密码格式和长度是不一样的,类似于使用MD5加密和使用base64加密一样对于同一个密码处理后的格式是不一样的。

二、解决

1.查看用户信息

select host,user,plugin,authentication_string from mysql.user;

备注:host为 % 表示不限制ip    localhost表示本机使用    plugin非mysql_native_password 则需要修改密码

2.修改用户密码(最好直接复制粘贴,手敲可能会报错

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 

更新user为root,host为% 的密码为123456

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

更新user为root,host为localhost 的密码为123456

修改前:

修改后:

刷新一下。

flush privileges;刷新一下就OK了,可以去连接了

我不希望更新本地的客户端版本,想直接使用原来的环境来链接。

解决方法:

是将root的plugin改成mysql_native_password。

相当于降了一级。

mysql官方网站提供了从mysql_old_password升级到mysql_native_password,我们可以仿照这个。

官方原文如下:

这里改成:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

这行代码有两层含义,

第一:修改root的密码为'root',摒弃原来的旧密码。

第二:使用mysql_native_password对新密码进行编码。

三、成功

修改完成后再用客户端登陆成功:

补充:

如果在修改插件的时候出现错误,可现将插件改为 mysql_old_password,然后再升级成mysql_native_password

方法:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文