1. 使用 Node.js 连接 MySQL 时发生如下报错信息:
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server;
2. 问题产生原因
登录数据库的客户端与 mysql 8.0 不兼容,mysql 8.0 密码认证采用了新的密码格式。
即最新的 mysql 模块并未完全支持 Mysql 8 的 “caching_sha2_password” 加密方式,而 “caching_sha2_password” 在 MySQL 8 中是默认的加密方式。
3. 解决方案
将默认的严格加密模式更改为普通模式的加密规则:
- 打开mysql command line client

- 在 MySQL 终端输入如下命令:

即:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
本文介绍了解决Node.js连接MySQL8.0时出现的ER_NOT_SUPPORTED_AUTH_MODE错误的方法。该问题是由于MySQL8.0采用了新的密码格式caching_sha2_password所导致。文中提供了一种解决方案,通过更改用户的认证方式为mysql_native_password来规避这一问题。
425

被折叠的 条评论
为什么被折叠?



