一、因为mysql 8 之前的版本中加密规则是mysql_native_password,而在之后版本,加密规则是caching_sha2_password ,node不支持mysql 8,连接时会报如下错误
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
需要修改mysql的加密规则后重新连接。
二、解决方法
(1)、修改mysql的加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
PASSWORD 前的root为数据库连接密码
或ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
BY 后的root为数据库连接密码
FLUSH PRIVILEGES; 刷新,使修改生效
(2)、在node项目中更换mysql连接器
npm un mysql && npm i mysql2
// 导入myslq模块
const mysql = require('mysql2')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)