MySQL 8.0 的 Node.js 身份验证问题
之前使用 root 帐户连接到 MySQL 数据库的 Node.js 应用程序可能会遇到身份验证错误由于默认身份验证插件的更改而升级到 MySQL 8.0 时。
理解问题
MySQL 8.0 现在使用 caching_sha2_password 作为默认身份验证插件,而 MySQL 5.7 使用 mysql_native_password。 MySQL 的某些 Node.js 驱动程序目前缺乏对新插件的兼容身份验证机制的支持。
可能的解决方案
要解决此问题,请考虑实施以下任一方法解决方法:
更改用户帐户:
更改 root 用户帐户以使用旧的 mysql_native_password 插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
创建新用户:
创建使用 mysql_native_password 的新用户帐户插件:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
结论
Node.js 和 MySQL 8.0 之间的身份验证问题源于默认身份验证插件的更改。提供的解决方法允许用户使用旧插件或官方 MySQL 连接器来维护 MySQL 连接。建议通过密切关注 MySQL 的 Node.js 驱动程序更新来实施永久解决方案。
以上是升级到 MySQL 8.0 后如何解决 Node.js 身份验证问题?的详细内容。更多信息请关注PHP中文网其他相关文章!