mysql - 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
任何人都可以帮忙吗?我现在真的没办法了!
提前致谢
解决方案
如果您想使用 MySQL 5.x 样式的身份验证,通常您所要做的就是将其添加到您的my.cnf
:
[mysqld]
default_authentication_plugin=mysql_native_password
在添加任何用户之前执行此操作。仅使用用户通过 Sequelize 进行连接,从不使用root
.
推荐阅读
- swift - 同时添加多个 SCNNode(s)
- keras - 如何在 Keras Tuner 中使用“LeakyRelu”和参数 Leaky Relu“PReLU”
- google-apps-script - 让谷歌电子表格向我发送电子邮件
- mysql - 无法将来自 JSON 的 Blob 转换为文件
- python - 删除晚于特定日期的任何内容
- python - 通过多次出现列来增加 html 显示的宽度
- flutter - 如何显示 Dart 类描述与代码
- sqlite - Tcl、SQLite 或任何其他适用于 Linux 操作系统的希伯来语的 Unicode 规范化
- c# - 加载资源失败:服务器响应状态为 500 () ASP.NET MVC PartialView With Popup
- javascript - 如何在 Google Apps 脚本中解决这个问题?