ORM技术:Object-Relational Mapping,把关系数据库的表结构映射到对象上
在最近的一个项目中,选择 Node 的 ORM 框架来操作数据库,这样,我们写的都是 JavaScript 对象,Sequelize 帮我们把对象变成数据库中的行。
错误信息
在使用 sequelize 链接 mysql8 时,出现了如下的错误:
主要的报错信息是这段代码:
Unhandled rejection SequelizeConnectionError: Client does not support authentication protocol requested by server; consider upgrading MySQL client
出错原因
导致出错的原因是 最新的 mysql 模块并未完全支持 MySQL8 的 “caching_sha2_password” 加密方式,而 “caching_sha2_password” 是 MySQL8 中的默认加密方式。
解决方法
重新修改用户 root 的密码,并指定 mysql 模块能够支持的加密方式
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows aff