连接到 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中文网其他相关文章!