首页 >数据库 >mysql教程 >Node.js 应用程序如何使用 MySQL 8.0 的缓存 SHA2 密码进行身份验证?

Node.js 应用程序如何使用 MySQL 8.0 的缓存 SHA2 密码进行身份验证?

DDD
DDD原创
2024-12-14 15:23:33689浏览

How Can Node.js Applications Authenticate with MySQL 8.0's Caching SHA2 Password?

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

MySQL 8.0 引入了新的身份验证机制,这给 Node.js 程序连接带来了困难数据库。默认情况下不再支持以前 MySQL 版本使用的旧身份验证方法。

身份验证机制差异

MySQL 5.7 使用 mysql_native_password 插件进行身份验证,而 MySQL 8.0 使用 mysql_native_password 插件进行身份验证缓存_sha2_密码。 Node.js 社区驱动程序目前缺乏新插件的兼容机制。

Node.js 的解决方法

要避免此问题,有两种潜在的解决方法:

  • 恢复到传统插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';

这会修改根帐户以使用旧的身份验证方法。

  • 使用旧插件创建新用户:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';

这将创建一个单独的用户使用旧版插件。

使用 MySQL 连接器的替代选项

另一个解决方案涉及使用官方 MySQL Node.js 连接器。该连接器利用 X 协议并支持开箱即用的较新身份验证机制。

社区支持和更新

即将推出一个拉取请求,旨在解决此问题社区 Node.js 驱动程序中的问题。不过,更新预计需要一些时间。

以上是Node.js 应用程序如何使用 MySQL 8.0 的缓存 SHA2 密码进行身份验证?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn