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 provides a Directus cloud service that is production-ready in just 2 minutes:

  • Unlimited collections, items, users, roles, API requests, and data transfers
  • Custom domain name with built-in HTTPS for secure access (for example, https://cms.your-company.com)
  • Dedicated email server for unlimited transactional and notification emails
  • Integrated Redis cache for high performance
  • Consistent performance and enhanced security with private, dedicated infrastructure
  • One-click updates to keep your system up to date effortlessly

Focus on your project, not on the setup: you can discover Stackhero's Directus cloud solution in just 5 minutes.

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.