Node.js连接MySQL报错:ER_NOT_SUPPORTED_AUTH_MODE
环境
Node.js 使用 ORM 框架
Sequelize
MySQL 版本号
Ver 14.14 Distrib 5.7.27, for Linux (x86_64)
,Ubuntu
18.04APT
命令安装具体报错信息如下:
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
原因
- 出现这个错误的原因是
MySQL
所使用的密码加密方式,Sequelize
依赖的mysql
模块不支持。
解决办法
重新修改 root 的密码,显式的指定密码的加密方式 先使用
mysql -u root -p
登录 MySQL 然后ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
重新运行
Node.js
项目,已经可以正确连接上 MySQL