首页 > 解决方案 > Sequelize 不支持 MySQL 8 身份验证协议,我不知道如何更改此协议

问题描述

我正在尝试使用 Sequelize 迁移与 MySQL 8.0.15 一起使用的数据库,但我无法做到这一点。我不断收到此错误消息。

Sequelize CLI [Node: 10.15.0, CLI: 5.4.0, ORM: 5.3.5]

Loaded configuration file "config/config.json".
Using environment "development".

ERROR: Client does not support authentication protocol requested by server; consider upgrading MySQL client

我已经尝试了这个问题的每一个解决方案。问题是当我尝试更改 MySQL 根密码时,我得到的消息是这样的:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

然后我确实尝试按照此过程更改密码验证策略

https://dev.mysql.com/doc/refman/5.6/en/validate-password-installation.html

然后 MySQL 崩溃了,因为它已被弃用。然后我尝试了这个

https://dev.mysql.com/doc/refman/8.0/en/validate-password-installation.html

然后我得到了这个

mysql> INSTALL COMPONENT 'file://component_validate_password';
ERROR 3529 (HY000): Cannot load component from specified URN: 
'file://component_validate_password'.

然后我检查了组件在哪里

ls /usr/lib64/mysql/plugin/component_v*
/usr/lib64/mysql/plugin/component_validate_password.so

任何人都可以帮忙吗?我现在真的没办法了!

提前致谢

标签: mysqlnode.jssequelize.js

解决方案


如果您想使用 MySQL 5.x 样式的身份验证,通常您所要做的就是将其添加到您的my.cnf

[mysqld]
default_authentication_plugin=mysql_native_password

在添加任何用户之前执行此操作。仅使用用户通过 Sequelize 进行连接,从不使用root.


推荐阅读