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

This documentation is part of the External databases guide. You can view the complete guide here: How to connect Directus to a MySQL, MariaDB, or PostgreSQL database.

👋 Welcome to the Stackhero documentation!

Stackhero offers a Directus cloud service, ready to use in production, in just 2 minutes:

  • Unlimited collections, items, users, roles, API requests, and transfers
  • Customisable domain name secured with HTTPS (for example, https://cms.your-company.com)
  • Dedicated and unlimited email server included
  • Redis cache server included for high performance
  • Optimal performance and robust security powered by a private and dedicated VM.
  1. One-click updates for effortless maintenance

Save time and simplify your life: it only takes 5 minutes to try Stackhero's Directus cloud solution!

If you see the error 🚨 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client when using a MySQL server that employs the new caching SHA2 authentication, Directus will not be able to connect properly. The solution is to switch to the traditional native MySQL authentication.

  1. If you are using phpMyAdmin, navigate to User accounts, select your Directus user, click Change password, and enter your password. Be sure to choose Native MySQL authentication as the password hashing method.

  2. Alternatively, you can run the following SQL commands using the CLI. Replace directus with your username and mySecretPassword with your chosen password:

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

Following these steps will help ensure that your Directus installation on Stackhero uses an external database designed for a production environment, offering improved performance and reliability.