这个错误是由于MySQL数据库的身份验证方式与Node.js的MySQL模块的身份验证方式不兼容造成的。MySQL 8.0 默认采用了 caching_sha2_password 身份验证插件,而旧版本的 MySQL 模块不支持这种方式。

解决方法如下:

  1. 升级 Node.js 的 MySQL 模块版本到最新版,最新版已经支持 caching_sha2_password 身份验证插件。

  2. 更改 MySQL 数据库的身份验证方式为旧版的 mysql_native_password。可以通过以下步骤进行更改:

a. 进入 MySQL 数据库,使用 root 用户登录。

b. 执行以下 SQL 语句:

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

 注意:将 'root' 和 'yourpassword' 替换为你的用户名和密码。

c. 退出 MySQL 数据库。

  1. 在连接 MySQL 数据库时,添加以下选项:

connectionLimit: 10, host: 'localhost', user: 'root', password: 'yourpassword', database: 'yourdatabase', authPlugins: { mysql_clear_password: () => () => Buffer.from(yourpassword + '\0') }

注意:将 'yourpassword' 和 'yourdatabase' 替换为你的密码和数据库名。

以上是常见的解决方法,如果还是无法解决问题,建议查看 MySQL 官方文档,了解更多关于身份验证方式的信息。


原文地址: https://www.cveoy.top/t/topic/becT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录