Navicat远程连接MySQL8时报“1251”的解决方法(建议‘root‘@‘localhost‘和‘root‘@‘%‘共存)

[全站通告] 想快速节省您的时间并可接受付费的朋友,可扫右边二维码加博主微信-非诚勿扰!

这两天折腾泛微ecology9在Linux系统下运行,折腾的实属够呛,真的是蛋疼,有一种蛋碎的赶脚~也实属无奈,咋也得搞定不是!!!

这不用Navicat连接MySQL8远程连接时报错“1251 Client does not support authentication protocol requested by server;consider upgrading MySQL client”

翻译一下结果为:1251客户端不支持服务器请求的认证协议,考虑升级MySQL客户端  错误如下图所示

Navicat远程连接MySQL8时报“1251”的解决方法

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password;

一种是升级 navicat 驱动;一种是把 mysql 用户登录密码加密规则还原成 mysql_native_password,更改加密方式为“mysql_native_password”更为方便快捷;

写在前面:建议root‘@‘localhost‘和‘root‘@‘%‘共存

1、先登录mysql -u root -p、然后切换到mysql数据库use mysql;、查看SELECT User, Host FROM mysql.user;

如root用户的host字段是localhost,那需要更改权限让root用户可以从任何主机登录。

如,root用户的host字段是localhost,不符合要求:

说明:下面因为让‘root‘@‘localhost‘和‘root‘@‘%‘共存,我选择新建用户!

2、先让‘root‘@‘localhost‘执行“mysql_native_password”,不然后面会没有权限;

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

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456a' PASSWORD EXPIRE NEVER;

FLUSH PRIVILEGES;

3、创建一个允许从任何主机登录的root用户,密码为laoliang

CREATE USER 'root'@'%' IDENTIFIED BY 'laoliang';
-- 创建'root'@'%'账户
CREATE USER 'root'@'%' IDENTIFIED BY 'laoliang';
-- 给'root'@'%'账户设置权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
-- 刷新权限
flush privileges;

4、将加密方式改为mysql_native_password 带上密码

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

5、更新新用户的密码

ALTER USER 'root'@'%' IDENTIFIED BY 'laoliang' PASSWORD EXPIRE NEVER;

6、刷新新建用的所有信息

FLUSH PRIVILEGES;

在输入select user,host,plugin from mysql.user;查询,是有两个root信息,root用户加密方式变成了“mysql_native_password”加密方式

这个时候便可以使用Navicat连接数据库喽;

延伸阅读:修改‘root‘@‘localhost‘变成‘root‘@‘%‘远程连接的方式方法

1、创建mysql root用户(有用户不用理会)

insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('root','','','','');

2、添加空权限(有用户自然有权限,依然不需要理会)

update user set Host='%',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;

3、修改‘root‘@‘localhost‘变成‘root‘@‘%‘任意连接

update user set host='%' where user='root'; //更新root的host为‘%’

update user set plugin='mysql_native_password' where user='root';

4、更新plugin属性为mysql_native_password

alter user 'root'@'%' identified with mysql_native_password by '你的密码';

按照以上操作就可以搞定Navicat远程连接MySQL8报1251的错误;

问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » Navicat远程连接MySQL8时报“1251”的解决方法(建议‘root‘@‘localhost‘和‘root‘@‘%‘共存)

发表回复

本站承接,网站推广(SEM,SEO);软件安装与调试;服务器或网络推荐及配置;APP开发与维护;网站开发修改及维护; 各财务软件安装调试及注册服务(金蝶,用友,管家婆,速达,星宇等);同时也有客户管理系统,人力资源,超市POS,医药管理等;

立即查看 了解详情