Node.js 12.18.3连接MySQL 8.0.21之验证模式错误

软件版本

软件版本
Ubuntu20.04 LTS
node.js12.18.3 LTS
MySQL8.0.21

错误及原因

使用node的mysql模块连接MySQL,出现以下错误:

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client.

错误详情如下所示:

{
	"code": "ER_NOT_SUPPORTED_AUTH_MODE",
	"errno": 1251,
	"sqlMessage": "Client does not support authentication protocol requested by server; consider upgrading MySQL client.",
	"sqlState": "08004",
	"fatal": true
}

MySQL 8.0默认的密码验证模式是"caching_sha2_password",而node默认的密码验证模式是"mysql_native_password"。

解决方案

打开终端,输入以下命令和密码,连接MySQL。

mysql -u root -p

输入以下SQL语句,修改验证模式和密码。

ALTER USER "root"@"localhost" IDENTIFIED WITH mysql_native_password BY "eterfree";

输入以下SQL语句,刷新权限,使修改立即生效。

FLUSH PRIVILEGES;

退出MySQL。

exit;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值