Node.js 连接 MySQL 报错: ER_NOT_SUPPORTED_AUTH_MODE 解决方法
这个错误是由于 MySQL 数据库的身份验证方式不被 Node.js 的 MySQL 驱动程序支持而引起的。
解决方法是在 MySQL 服务器中更改身份验证插件,使其使用较新的插件,例如 'caching_sha2_password'。
步骤如下:
-
使用管理员帐户登录 MySQL 服务器。
-
运行以下命令,查看服务器当前使用的身份验证插件:
SELECT plugin FROM mysql.user WHERE User = 'root'; -
如果插件是 'mysql_native_password',则需要更改为 'caching_sha2_password'。运行以下命令更改身份验证插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';其中,'password' 是您要为 root 用户设置的密码。
-
运行以下命令刷新 MySQL 权限:
FLUSH PRIVILEGES; -
退出 MySQL 服务器,并重新启动它。
-
在 Node.js 中使用更新后的 MySQL 驱动程序连接到 MySQL 服务器,即可解决问题。
注意:如果您无法更改 MySQL 服务器的身份验证插件,请尝试使用较旧版本的 MySQL 驱动程序,例如 'mysql2 1.7.0' 以下版本。
原文地址: https://www.cveoy.top/t/topic/mE0f 著作权归作者所有。请勿转载和采集!