首页 >数据库 >mysql教程 >如何修复 MySQL 8.0 身份验证错误:Node.JS 中的客户端协议不匹配?

如何修复 MySQL 8.0 身份验证错误:Node.JS 中的客户端协议不匹配?

DDD
DDD原创
2024-12-31 06:32:21362浏览

How to Fix MySQL 8.0 Authentication Error: Client Protocol Mismatch in Node.JS?

MySQL 8.0 身份验证错误:客户端协议不匹配

许多用户在尝试使用 MySQL 8.0 建立连接时遇到错误Node.JS:

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

解决方案

要解决此问题,请在 MySQL Workbench 中执行以下命令:

  • ALTER用户 'root'@'localhost' 通过 mysql_native_password 识别'password';
  • 刷新权限;

确保将 'root'、'localhost' 和 'password' 替换为您的特定用户、主机和密码。

如果上述方法失败,请尝试执行第一条命令,不包含@'localhost'.

说明

MySQL 8.0 引入了默认的 caching_sha2_password 身份验证方法,较旧的 MySQL 客户端版本不支持该方法。通过将用户的身份验证方法更新为 mysql_native_password,客户端可以成功与服务器进行身份验证。

附加说明

  • 如果无法连接使用 root 用户登录 MySQL Workbench,您可能需要使用以下命令重置 root 密码步骤:

    • 停止 MySQL 服务。
    • 使用 --skip-grant-tables 选项启动 MySQL 服务。
    • 连接到 MySQL服务器作为 root 用户,没有密码。
    • 使用以下命令重置 root 密码:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
    • 重新启动 MySQL 服务。
  • 如果遇到任何其他问题,请参阅以下资源:

    • MySQL 文档: https://dev.mysql.com/doc/refman/5.5/en/old-client.html
    • GitHub 问题:https://github.com/mysqljs/mysql/issues/1507

以上是如何修复 MySQL 8.0 身份验证错误:Node.JS 中的客户端协议不匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn