node连接mysql时报错Client does not support authentication protocol requested by server; consider upgrading MySQL client

尝试用node编写一个简单的登录接口,结果启动服务后请求接口出现了该错误。

其问题就是访问的工具身份验证协议过于落后,在node内安装的2.18.1 mysql包。

解决:

先登录数据库。

use mysql;(mysql为数据库名)

提示Database changed;

查询表中信息 ;

select user,host,plugin from mysql.user
//这里查询的三项分别为,用户,主机地址,插件信息,可以知道密码校验的方式

 

 

之后执行以下语句

 alter user 'root'@'%' identified by 'password' password expire never; 
// password expire never 是mysql8之后的新密码管理机制 

 alter user 'root'@'%' identified with mysql_native_password by 'password';
//password是自己新修改的密码, mysql_native_password则是另一种密码校验方式.(具体原理我也不知道)

 flush privileges;
//再次刷新一下权限配置。

  

修改好了,再使用node访问接口,成功拿到数据库中数据。

 

posted @ 2023-11-16 15:58  淮生  阅读(138)  评论(0编辑  收藏  举报