这个错误是由于 MySQL 数据库的身份验证方式不被 Node.js 的 MySQL 驱动程序支持而引起的。

解决方法是在 MySQL 服务器中更改身份验证插件,使其使用较新的插件,例如 'caching_sha2_password'。

步骤如下:

  1. 使用管理员帐户登录 MySQL 服务器。

  2. 运行以下命令,查看服务器当前使用的身份验证插件:

    SELECT plugin FROM mysql.user WHERE User = 'root';
    
  3. 如果插件是 'mysql_native_password',则需要更改为 'caching_sha2_password'。运行以下命令更改身份验证插件:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
    

    其中,'password' 是您要为 root 用户设置的密码。

  4. 运行以下命令刷新 MySQL 权限:

    FLUSH PRIVILEGES;
    
  5. 退出 MySQL 服务器,并重新启动它。

  6. 在 Node.js 中使用更新后的 MySQL 驱动程序连接到 MySQL 服务器,即可解决问题。

注意:如果您无法更改 MySQL 服务器的身份验证插件,请尝试使用较旧版本的 MySQL 驱动程序,例如 'mysql2 1.7.0' 以下版本。

Node.js 连接 MySQL 报错: ER_NOT_SUPPORTED_AUTH_MODE 解决方法

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

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