「Debug」Node.js连接MySQL 8.0出现无法认证身份的报错

发布于 2023-07-11  83 次阅读


问题描述

Node.js用root身份连接MySQL 8.0及以上版本时,返回错误

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocolrequested by server; consider upgrading MySQL client

问题出现的原因好像是MySQL 8.0及以上版本用了新的身份认证协议,不是传统的密钥,Node.js发送传统的密码过去无法通过认证。

解决方法

将要登录数据库的用户的密码以传统的协议设置。操作如下:

先在终端登录进入MySQL命令行,mysql -u root -p,回车后输入密码。

然后输入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

其中的123456换成你自己要设置的密码。

最后输入FLUSH PRIVILEGES;并回车。

以下是终端返回结果:

%E6%88%AA%E5%B1%8F2023-07-11%2016.17.01.png

然后就可以连接上数据库了~


A Student on the way to full stack of Web3.