如何修复 Node.js 连接 MySQL 时出现'ER_NOT_SUPPORTED_AUTH_MODE”错误?

Susan Sarandon
发布: 2024-11-17 15:20:02
原创
451 人浏览过

How to Fix the

解决将 Node.js 连接到 MySQL 时出现的 ER_NOT_SUPPORTED_AUTH_MODE 错误

将 Node.js 服务器连接到 MySQL 数据库时,可能会遇到错误“ER_NOT_SUPPORTED_AUTH_MODE: Client does不支持服务器请求的身份验证协议。”当客户端和服务器使用不同的身份验证方法时,就会出现此问题。

问题分析

错误消息表明 MySQL 服务器配置为使用较新的身份验证协议Node.js 客户端不支持。如果 Node.js 客户端版本过时,就会出现这种情况。

解决方案

要解决此问题,请升级 Node.js 客户端以支持使用的较新身份验证协议由MySQL服务器。对于 MySQL v8.0,请按照以下步骤操作:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
登录后复制

请记住将“root”和“password”替换为实际用户名和所需密码。这些更改需要应用于尝试连接的用户。

代码片段(已更新)

更新 MySQL 配置和用户权限后,Node. Node.js 连接片段应更新为使用 mysql2 库,该库支持较新的身份验证协议:

    const mysql = require('mysql2');

    const connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : 'password',
        database : 'foobarDb'
    });
登录后复制

通过实施这些步骤,您可以成功在 Node.js 服务器和 MySQL 数据库之间建立连接,从而消除“ER_NOT_SUPPORTED_AUTH_MODE”错误。

以上是如何修复 Node.js 连接 MySQL 时出现'ER_NOT_SUPPORTED_AUTH_MODE”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板