登录
首页 >  数据库 >  MySQL

Node连接mysql,报错Client does not support authentication protocol...

来源:SegmentFault

时间:2023-01-28 10:58:59 356浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是数据库学习者,那么本文《Node连接mysql,报错Client does not support authentication protocol...》就很适合你!本篇内容主要包括Node连接mysql,报错Client does not support authentication protocol...,希望对大家的知识积累有所帮助,助力实战开发!

报错语句和原因:

报错语句:

Client does not support authentication protocol requested by server
//NodeJS MySQL客户端不支持身份验证协议

原因:MySql 8.0换了新的身份验证插件(caching_sha2_password), 旧的身份验证插件为(mysql_native_password)。
以默认创建的用户和密码都是这个加密方式。而npm包里的mysql模块还是使用原来的mysql_native_password加密方式,两者不互通,连接会报错。

解决办法:

将用户密码从caching_sha2_password加密方式改回的 mysql_native_password加密方式。

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

如上,将root用户的密码123456789的认证修改成mysql_native_password,之后再连接mysql就会成功。
然后刷新缓存:

flush privileges;

注意点

1,@后面的host要和账号的host对应,比如我的账号host是%,语句就要改成%。

image.png

ALTER USER 'kason'@'%' IDENTIFIED WITH mysql_native_password BY '123456789';

2,报错:ERROR 1396 (HY000): Operation ALTER USER failed for 'xxx'@'xxx'
其实没有进入mysql这个库,就去执行语句,自然是报错了。
顺序如下:
1,先进入mysql这个数据库。
2,执行改密码验证方式(建议和原密码一致,会一起修改掉密码)。
3,刷新缓存。

use mysql;

ALTER USER 'kason'@'%' IDENTIFIED WITH mysql_native_password BY '123456789';

flush privileges;

亲测完美解决,撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于数据库的相关知识,也可关注golang学习网公众号。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表