首页 > 数据库 > mysql教程 > 为什么我的 Node.js 应用程序无法通过 MySQL 8.0 进行身份验证?

为什么我的 Node.js 应用程序无法通过 MySQL 8.0 进行身份验证?

Susan Sarandon
发布: 2024-11-30 14:29:14
原创
178 人浏览过

Why is My Node.js App Failing to Authenticate with MySQL 8.0?

MySQL 8.0 的 Node.js 身份验证问题

尝试使用 Node.js 使用 root 帐户连接到 MySQL 数据库时,某些可能会出现问题。这与 MySQL 8.0 尤其相关,其中默认身份验证插件已从 mysql_native_password 更改为 caching_sha2_password。

错误消息和原因

尝试使用 Node.js 应用程序连接到 MySQL 8.0 时,可能会出现以下错误:

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
登录后复制

此错误表明 Node.js MySQL 驱动程序无法使用 MySQL 8.0 中引入的新身份验证插件。

解决方法:

要解决该问题并使用 root 帐户连接到 MySQL 8.0,可以使用 mysql_native_password 插件代替默认缓存_sha2_密码。这可以通过以下方法之一来实现:

  1. 更改现有根帐户:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
登录后复制
  1. 使用所需插件创建新用户:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
登录后复制

替代方案解决方案:

或者,可以使用基于 X 协议的官方 MySQL Node.js 连接器。该连接器支持 MySQL 8.0 中新的身份验证模式。

以上是为什么我的 Node.js 应用程序无法通过 MySQL 8.0 进行身份验证?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板