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 '你的数据库密码';