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 中执行以下命令:
确保将 '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中文网其他相关文章!