Directus: Directus 錯誤 "🚨 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server"

本文件是外部數據庫指南的一部分。請在此處查看完整指南:如何將 Directus 連接到 MySQL、MariaDB 或 PostgreSQL 數據庫

👋 歡迎來到 Stackhero 文件中心!

Stackhero 提供 Directus cloud 服務,只需 2 分鐘即可部署好可用於生產環境的解決方案:

  • 無限制的集合、項目、使用者、角色、API 請求與資料傳輸
  • 內建 HTTPS自訂網域名稱,確保安全存取(例如 https://cms.your-company.com
  • 專屬電子郵件伺服器,支援無限量的交易型與通知型郵件發送
  • 整合 Redis 快取,帶來高效能
  • 專屬私有基礎架構,確保穩定效能高度安全性
  • 一鍵更新,讓您輕鬆保持系統最新狀態

專注於您的專案,不必煩惱環境設定:只需 5 分鐘即可體驗 Stackhero 的 Directus cloud 解決方案

如果您在使用採用新緩存 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 安裝使用適合生產環境的外部數據庫,提供更好的性能和可靠性。