Node连接MySQL报错ER_NOT_SUPPORTED_AUTH_MODEError

谁说我不能喝 提交于 2020-02-17 18:41:51

在Node服务中连接mysql数据库,启动服务时报错:

nodejs.ER_NOT_SUPPORTED_AUTH_MODEError: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server

报错提示

报错原因

我本地安装的mysql版本是8.0,默认的加密方式是caching_sha2_password,而这种加密方式是node-mysql(我在项目中使用的是egg-mysql)这类模块的较多版本中尚未支持的,因此提示客户端尚不支持服务所需的认证协议。

解决方案

修改本地mysql数据库登录使用的加密协议即可。可视化界面或命令行操作修改密码的加密方式。

命令行操作语句为:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '您的新密码';

(注意,命令行中分号或\g才表示sql语句的结束,直接换行并不会执行sql语句)

修改成功

执行成功后重新启动node服务即可发现报错消失。

启动成功

参考链接https://blog.csdn.net/kkkloveyou/article/details/91623834

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!