Directus: Directus 错误 "🚨 ER_NOT_SUPPORTED_AUTH_MODE: 客户端不支持服务器请求的认证协议"

本文档属于外部数据库指南的一部分。您可以在此处查看完整指南:如何将 Directus 连接到 MySQL、MariaDB 或 PostgreSQL 数据库

👋 欢迎使用 Stackhero 文档!

Stackhero 提供 Directus 云 服务,仅需 2 分钟即可投入生产使用:

  • 无限的集合、项目、用户、角色、API 请求和传输
  • 使用 HTTPS 保护的可定制域名(例如,https://cms.your-company.com
  • 包含专用且无限的电子邮件服务器
  • 包含 Redis 缓存服务器以实现高性能
  • 私有和专用 VM提供支持的最佳性能和强大安全性
  1. 一键更新,轻松维护

节省时间简化生活:只需 5 分钟即可试用 Stackhero 的 Directus 云解决方案

如果您在使用采用新缓存 SHA2 认证的 MySQL 服务器时看到错误 🚨 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client,Directus 将无法正确连接。解决方案是切换到传统的 MySQL 原生认证。

  1. 如果您使用 phpMyAdmin,导航到 用户账户,选择您的 Directus 用户,点击 更改密码,并输入您的密码。确保选择 MySQL 原生认证 作为密码哈希方法。

  2. 或者,您可以使用 CLI 运行以下 SQL 命令。将 directus 替换为您的用户名,将 mySecretPassword 替换为您选择的密码:

    ALTER USER 'directus'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'mySecretPassword';
    FLUSH PRIVILEGES;
    

按照这些步骤,您将确保您的 Stackhero 上的 Directus 安装使用适合生产环境的外部数据库,从而提供更好的性能和可靠性。