mysql - Sequelize 不支持 MySQL 8 身份验证协议(protocol),我不知道如何更改此协议(protocol)

标签 mysql node.js sequelize.js

我正在尝试使用 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 root 密码时,我收到的消息是:

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

有人可以帮忙吗?我现在真的别无选择!

提前致谢

最佳答案

如果您想使用 MySQL 5.x 风格的身份验证,通常您只需将其添加到您的 my.cnf 中即可:

[mysqld]
default_authentication_plugin=mysql_native_password

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

关于mysql - Sequelize 不支持 MySQL 8 身份验证协议(protocol),我不知道如何更改此协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55670688/

相关文章:

sql - 带有 Sequelize Cast 的 uuid v4 类型列上的 ILIKE 运算符

mysql - MYSQL 中 SUM 函数的索引

Mysql全文搜索结果元数据

javascript - MEAN 应用程序的负载测试

node.js - 如何验证和解析电话号码以提取其国家/地区电话代码和区号?

sequelize.js - 是否可以使用 sequelize 中的钩子(Hook)获取插入的行 ID?

php - 在 PHP 中通过 POST 传递数组以插入到 MySQL 中

java - 具有该位置 [5] 的参数不存在;

javascript - axios post params没有被发送

javascript - 查询至少有 1 个关联的地方,但返回所有