背景
使用 typeorm + mysql 做项目,由于本机重新安装了mysql,使用了最新的mysql8.0版本,导致报了该错。
报错内容
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
sqlState: '08004',
fatal: true
}
说的是MySql8.0之后,采用了新的权限认证方式。而我们是用客户端连接工具还不支持,所以思路很明确,要么降级mysql的验证方式,要么找一个更高级的客户端。
解决办法
第一种:降级 MySQL的 权限认证配置,不使用新的验证方式
可以用mysql installer去重新配置,也可以执行命令。推荐前一种。
第二种:安装mysql2,在typeOrm的配置中,改用mysql2
尝试了一下mysql2,好使
npm i mysql2
export const AppDataSource = new DataSource({
type: "mysql",
connectorPackage: "mysql2",
}
|